B2R2


Opcode Type

EVM opcodes. This type should be generated using scripts/genOpcode.fsx from the `EVMSupportedOpcode.txt` file.

Union cases

Union case Description

ADD

Full Usage: ADD

Addition operation

ADDMOD

Full Usage: ADDMOD

Modulo addition operation

ADDRESS

Full Usage: ADDRESS

Get address of currently executing account

AND

Full Usage: AND

Bitwise AND operation

BALANCE

Full Usage: BALANCE

Get balance of the given account

BLOCKHASH

Full Usage: BLOCKHASH

Get the hash of one of the 256 most recent complete blocks

BYTE

Full Usage: BYTE

Retrieve single byte from word

CALL

Full Usage: CALL

Message-call into an account

CALLCODE

Full Usage: CALLCODE

Message-call into this account with alternative account's code

CALLDATACOPY

Full Usage: CALLDATACOPY

Copy input data in current environment to memory

CALLDATALOAD

Full Usage: CALLDATALOAD

Get input data of current environment

CALLDATASIZE

Full Usage: CALLDATASIZE

Get size of input data in current environment

CALLER

Full Usage: CALLER

Get caller address

CALLVALUE

Full Usage: CALLVALUE

Get deposited value by the instruction/transaction responsible for this execution

CODECOPY

Full Usage: CODECOPY

Copy code running in current environment to memory

CODESIZE

Full Usage: CODESIZE

Get size of code running in current environment

COINBASE

Full Usage: COINBASE

Get the block's beneficiary address

CREATE

Full Usage: CREATE

Create a new account with associated code

CREATE2

Full Usage: CREATE2

Create a new account and set creation address to sha3(sender + sha3(init code)) % 2**160

DELEGATECALL

Full Usage: DELEGATECALL

Message-call into this account with an alternative account's code, but persisting into this account with an alternative account's code

DIFFICULTY

Full Usage: DIFFICULTY

Get the block's difficulty

DIV

Full Usage: DIV

Integer division operation

DUP1

Full Usage: DUP1

Duplicate 1st stack item

DUP10

Full Usage: DUP10

Duplicate 10th stack item

DUP11

Full Usage: DUP11

Duplicate 11th stack item

DUP12

Full Usage: DUP12

Duplicate 12th stack item

DUP13

Full Usage: DUP13

Duplicate 13th stack item

DUP14

Full Usage: DUP14

Duplicate 14th stack item

DUP15

Full Usage: DUP15

Duplicate 15th stack item

DUP16

Full Usage: DUP16

Duplicate 16th stack item

DUP2

Full Usage: DUP2

Duplicate 2nd stack item

DUP3

Full Usage: DUP3

Duplicate 3rd stack item

DUP4

Full Usage: DUP4

Duplicate 4th stack item

DUP5

Full Usage: DUP5

Duplicate 5th stack item

DUP6

Full Usage: DUP6

Duplicate 6th stack item

DUP7

Full Usage: DUP7

Duplicate 7th stack item

DUP8

Full Usage: DUP8

Duplicate 8th stack item

DUP9

Full Usage: DUP9

Duplicate 9th stack item

EQ

Full Usage: EQ

Equality comparison

EXP

Full Usage: EXP

Exponential operation

EXTCODECOPY

Full Usage: EXTCODECOPY

Copy an account's code to memory

EXTCODESIZE

Full Usage: EXTCODESIZE

Get size of an account's code

GAS

Full Usage: GAS

Get the amount of available gas, including the corresponding reduction the amount of available gas

GASLIMIT

Full Usage: GASLIMIT

Get the block's gas limit

GASPRICE

Full Usage: GASPRICE

Get price of gas in current environment

GETPC

Full Usage: GETPC

Get the value of the program counter prior to the increment

GT

Full Usage: GT

Greater-than comparison

INVALID

Full Usage: INVALID

Designated invalid instruction

ISZERO

Full Usage: ISZERO

Simple not operator

JUMP

Full Usage: JUMP

Alter the program counter

JUMPDEST

Full Usage: JUMPDEST

Mark a valid destination for jumps

JUMPI

Full Usage: JUMPI

Conditionally alter the program counter

LOG0

Full Usage: LOG0

Append log record with no topics

LOG1

Full Usage: LOG1

Append log record with one topic

LOG2

Full Usage: LOG2

Append log record with two topics

LOG3

Full Usage: LOG3

Append log record with three topics

LOG4

Full Usage: LOG4

Append log record with four topics

LT

Full Usage: LT

Less-than comparison

MLOAD

Full Usage: MLOAD

Load word from memory

MOD

Full Usage: MOD

Modulo remainder operation

MSIZE

Full Usage: MSIZE

Get the size of active memory in bytes

MSTORE

Full Usage: MSTORE

Save word to memory

MSTORE8

Full Usage: MSTORE8

Save byte to memory

MUL

Full Usage: MUL

Multiplication operation

MULMOD

Full Usage: MULMOD

Modulo multiplication operation

NOT

Full Usage: NOT

Bitwise NOT operation

NUMBER

Full Usage: NUMBER

Get the block's number

OR

Full Usage: OR

Bitwise OR operation

ORIGIN

Full Usage: ORIGIN

Get execution origination address

POP

Full Usage: POP

Remove word from stack

PUSH1 BitVector

Full Usage: PUSH1 BitVector

Parameters:

Place 1 byte item on stack

Item : BitVector

PUSH10 BitVector

Full Usage: PUSH10 BitVector

Parameters:

Place 10-byte item on stack

Item : BitVector

PUSH11 BitVector

Full Usage: PUSH11 BitVector

Parameters:

Place 11-byte item on stack

Item : BitVector

PUSH12 BitVector

Full Usage: PUSH12 BitVector

Parameters:

Place 12-byte item on stack

Item : BitVector

PUSH13 BitVector

Full Usage: PUSH13 BitVector

Parameters:

Place 13-byte item on stack

Item : BitVector

PUSH14 BitVector

Full Usage: PUSH14 BitVector

Parameters:

Place 14-byte item on stack

Item : BitVector

PUSH15 BitVector

Full Usage: PUSH15 BitVector

Parameters:

Place 15-byte item on stack

Item : BitVector

PUSH16 BitVector

Full Usage: PUSH16 BitVector

Parameters:

Place 16-byte item on stack

Item : BitVector

PUSH17 BitVector

Full Usage: PUSH17 BitVector

Parameters:

Place 17-byte item on stack

Item : BitVector

PUSH18 BitVector

Full Usage: PUSH18 BitVector

Parameters:

Place 18-byte item on stack

Item : BitVector

PUSH19 BitVector

Full Usage: PUSH19 BitVector

Parameters:

Place 19-byte item on stack

Item : BitVector

PUSH2 BitVector

Full Usage: PUSH2 BitVector

Parameters:

Place 2-byte item on stack

Item : BitVector

PUSH20 BitVector

Full Usage: PUSH20 BitVector

Parameters:

Place 20-byte item on stack

Item : BitVector

PUSH21 BitVector

Full Usage: PUSH21 BitVector

Parameters:

Place 21-byte item on stack

Item : BitVector

PUSH22 BitVector

Full Usage: PUSH22 BitVector

Parameters:

Place 22-byte item on stack

Item : BitVector

PUSH23 BitVector

Full Usage: PUSH23 BitVector

Parameters:

Place 23-byte item on stack

Item : BitVector

PUSH24 BitVector

Full Usage: PUSH24 BitVector

Parameters:

Place 24-byte item on stack

Item : BitVector

PUSH25 BitVector

Full Usage: PUSH25 BitVector

Parameters:

Place 25-byte item on stack

Item : BitVector

PUSH26 BitVector

Full Usage: PUSH26 BitVector

Parameters:

Place 26-byte item on stack

Item : BitVector

PUSH27 BitVector

Full Usage: PUSH27 BitVector

Parameters:

Place 27-byte item on stack

Item : BitVector

PUSH28 BitVector

Full Usage: PUSH28 BitVector

Parameters:

Place 28-byte item on stack

Item : BitVector

PUSH29 BitVector

Full Usage: PUSH29 BitVector

Parameters:

Place 29-byte item on stack

Item : BitVector

PUSH3 BitVector

Full Usage: PUSH3 BitVector

Parameters:

Place 3-byte item on stack

Item : BitVector

PUSH30 BitVector

Full Usage: PUSH30 BitVector

Parameters:

Place 30-byte item on stack

Item : BitVector

PUSH31 BitVector

Full Usage: PUSH31 BitVector

Parameters:

Place 31-byte item on stack

Item : BitVector

PUSH32 BitVector

Full Usage: PUSH32 BitVector

Parameters:

Place 32-byte (full word) item on stack

Item : BitVector

PUSH4 BitVector

Full Usage: PUSH4 BitVector

Parameters:

Place 4-byte item on stack

Item : BitVector

PUSH5 BitVector

Full Usage: PUSH5 BitVector

Parameters:

Place 5-byte item on stack

Item : BitVector

PUSH6 BitVector

Full Usage: PUSH6 BitVector

Parameters:

Place 6-byte item on stack

Item : BitVector

PUSH7 BitVector

Full Usage: PUSH7 BitVector

Parameters:

Place 7-byte item on stack

Item : BitVector

PUSH8 BitVector

Full Usage: PUSH8 BitVector

Parameters:

Place 8-byte item on stack

Item : BitVector

PUSH9 BitVector

Full Usage: PUSH9 BitVector

Parameters:

Place 9-byte item on stack

Item : BitVector

RETURN

Full Usage: RETURN

Halt execution returning output data

RETURNDATACOPY

Full Usage: RETURNDATACOPY

Copies data from the return data buffer to memory

RETURNDATASIZE

Full Usage: RETURNDATASIZE

Pushes the size of the return data buffer onto the stack

REVERT

Full Usage: REVERT

Stop execution and revert state changes, without consuming all provided gas and providing a reason

SAR

Full Usage: SAR

Arithmetic Shift Right

SDIV

Full Usage: SDIV

Signed integer division operation (truncated)

SELFDESTRUCT

Full Usage: SELFDESTRUCT

Halt execution and register account for later deletion

SGT

Full Usage: SGT

Signed greater-than comparison

SHA3

Full Usage: SHA3

Compute Keccak-256 hash

SHL

Full Usage: SHL

Shift Left

SHR

Full Usage: SHR

Logical Shift Right

SIGNEXTEND

Full Usage: SIGNEXTEND

Extend length of two's complement signed integer

SLOAD

Full Usage: SLOAD

Load word from storage

SLT

Full Usage: SLT

Signed less-than comparison

SMOD

Full Usage: SMOD

Signed modulo remainder operation

SSTORE

Full Usage: SSTORE

Save word to storage

STATICCALL

Full Usage: STATICCALL

Similar to CALL, but does not modify state

STOP

Full Usage: STOP

Halts execution

SUB

Full Usage: SUB

Subtraction operation

SWAP1

Full Usage: SWAP1

Exchange 1st and 2nd stack items

SWAP10

Full Usage: SWAP10

Exchange 1st and 11th stack items

SWAP11

Full Usage: SWAP11

Exchange 1st and 12th stack items

SWAP12

Full Usage: SWAP12

Exchange 1st and 13th stack items

SWAP13

Full Usage: SWAP13

Exchange 1st and 14th stack items

SWAP14

Full Usage: SWAP14

Exchange 1st and 15th stack items

SWAP15

Full Usage: SWAP15

Exchange 1st and 16th stack items

SWAP16

Full Usage: SWAP16

Exchange 1st and 17th stack items

SWAP2

Full Usage: SWAP2

Exchange 1st and 3rd stack items

SWAP3

Full Usage: SWAP3

Exchange 1st and 4th stack items

SWAP4

Full Usage: SWAP4

Exchange 1st and 5th stack items

SWAP5

Full Usage: SWAP5

Exchange 1st and 6th stack items

SWAP6

Full Usage: SWAP6

Exchange 1st and 7th stack items

SWAP7

Full Usage: SWAP7

Exchange 1st and 8th stack items

SWAP8

Full Usage: SWAP8

Exchange 1st and 9th stack items

SWAP9

Full Usage: SWAP9

Exchange 1st and 10th stack items

TIMESTAMP

Full Usage: TIMESTAMP

Get the block's timestamp

XOR

Full Usage: XOR

Bitwise XOR operation