Expand description
EVM opcode definitions and utilities.
Modules§
Structs§
- An EVM opcode.
- An error indicating that an opcode is invalid.
- Information about opcode, such as name, and stack inputs and outputs.
Enums§
- Either a plain, static instruction table, or a boxed, dynamic instruction table.
Constants§
- The
0x01
(“ADD”) opcode. - The
0x08
(“ADDMOD”) opcode. - The
0x30
(“ADDRESS”) opcode. - The
0x16
(“AND”) opcode. - The
0x31
(“BALANCE”) opcode. - The
0x48
(“BASEFEE”) opcode. - The
0x4A
(“BLOBBASEFEE”) opcode. - The
0x49
(“BLOBHASH”) opcode. - The
0x40
(“BLOCKHASH”) opcode. - The
0x1A
(“BYTE”) opcode. - The
0xF1
(“CALL”) opcode. - The
0xF2
(“CALLCODE”) opcode. - The
0x37
(“CALLDATACOPY”) opcode. - The
0x35
(“CALLDATALOAD”) opcode. - The
0x36
(“CALLDATASIZE”) opcode. - The
0x33
(“CALLER”) opcode. - The
0xE3
(“CALLF”) opcode. - The
0x34
(“CALLVALUE”) opcode. - The
0x46
(“CHAINID”) opcode. - The
0x39
(“CODECOPY”) opcode. - The
0x38
(“CODESIZE”) opcode. - The
0x41
(“COINBASE”) opcode. - The
0xF0
(“CREATE”) opcode. - The
0xF5
(“CREATE2”) opcode. - The
0xD3
(“DATACOPY”) opcode. - The
0xD0
(“DATALOAD”) opcode. - The
0xD1
(“DATALOADN”) opcode. - The
0xD2
(“DATASIZE”) opcode. - The
0xF4
(“DELEGATECALL”) opcode. - The
0x44
(“DIFFICULTY”) opcode. - The
0x04
(“DIV”) opcode. - The
0x80
(“DUP1”) opcode. - The
0x81
(“DUP2”) opcode. - The
0x82
(“DUP3”) opcode. - The
0x83
(“DUP4”) opcode. - The
0x84
(“DUP5”) opcode. - The
0x85
(“DUP6”) opcode. - The
0x86
(“DUP7”) opcode. - The
0x87
(“DUP8”) opcode. - The
0x88
(“DUP9”) opcode. - The
0x89
(“DUP10”) opcode. - The
0x8A
(“DUP11”) opcode. - The
0x8B
(“DUP12”) opcode. - The
0x8C
(“DUP13”) opcode. - The
0x8D
(“DUP14”) opcode. - The
0x8E
(“DUP15”) opcode. - The
0x8F
(“DUP16”) opcode. - The
0xE6
(“DUPN”) opcode. - The
0xEC
(“EOFCREATE”) opcode. - The
0x14
(“EQ”) opcode. - The
0xE8
(“EXCHANGE”) opcode. - The
0x0A
(“EXP”) opcode. - The
0xF8
(“EXTCALL”) opcode. - The
0x3C
(“EXTCODECOPY”) opcode. - The
0x3F
(“EXTCODEHASH”) opcode. - The
0x3B
(“EXTCODESIZE”) opcode. - The
0xF9
(“EXTDELEGATECALL”) opcode. - The
0xFB
(“EXTSTATICCALL”) opcode. - The
0x5A
(“GAS”) opcode. - The
0x45
(“GASLIMIT”) opcode. - The
0x3A
(“GASPRICE”) opcode. - The
0x11
(“GT”) opcode. - The
0xFE
(“INVALID”) opcode. - The
0x15
(“ISZERO”) opcode. - The
0x56
(“JUMP”) opcode. - The
0x5B
(“JUMPDEST”) opcode. - The
0xE5
(“JUMPF”) opcode. - The
0x57
(“JUMPI”) opcode. - The
0x20
(“KECCAK256”) opcode. - The
0xA0
(“LOG0”) opcode. - The
0xA1
(“LOG1”) opcode. - The
0xA2
(“LOG2”) opcode. - The
0xA3
(“LOG3”) opcode. - The
0xA4
(“LOG4”) opcode. - The
0x10
(“LT”) opcode. - The
0x5E
(“MCOPY”) opcode. - The
0x51
(“MLOAD”) opcode. - The
0x06
(“MOD”) opcode. - The
0x59
(“MSIZE”) opcode. - The
0x52
(“MSTORE”) opcode. - The
0x53
(“MSTORE8”) opcode. - The
0x02
(“MUL”) opcode. - The
0x09
(“MULMOD”) opcode. - Alias for the
JUMPDEST
opcode. - The
0x19
(“NOT”) opcode. - The
0x43
(“NUMBER”) opcode. - Maps each opcode to its info.
- The
0x17
(“OR”) opcode. - The
0x32
(“ORIGIN”) opcode. - The
0x58
(“PC”) opcode. - The
0x50
(“POP”) opcode. - The
0x5F
(“PUSH0”) opcode. - The
0x60
(“PUSH1”) opcode. - The
0x61
(“PUSH2”) opcode. - The
0x62
(“PUSH3”) opcode. - The
0x63
(“PUSH4”) opcode. - The
0x64
(“PUSH5”) opcode. - The
0x65
(“PUSH6”) opcode. - The
0x66
(“PUSH7”) opcode. - The
0x67
(“PUSH8”) opcode. - The
0x68
(“PUSH9”) opcode. - The
0x69
(“PUSH10”) opcode. - The
0x6A
(“PUSH11”) opcode. - The
0x6B
(“PUSH12”) opcode. - The
0x6C
(“PUSH13”) opcode. - The
0x6D
(“PUSH14”) opcode. - The
0x6E
(“PUSH15”) opcode. - The
0x6F
(“PUSH16”) opcode. - The
0x70
(“PUSH17”) opcode. - The
0x71
(“PUSH18”) opcode. - The
0x72
(“PUSH19”) opcode. - The
0x73
(“PUSH20”) opcode. - The
0x74
(“PUSH21”) opcode. - The
0x75
(“PUSH22”) opcode. - The
0x76
(“PUSH23”) opcode. - The
0x77
(“PUSH24”) opcode. - The
0x78
(“PUSH25”) opcode. - The
0x79
(“PUSH26”) opcode. - The
0x7A
(“PUSH27”) opcode. - The
0x7B
(“PUSH28”) opcode. - The
0x7C
(“PUSH29”) opcode. - The
0x7D
(“PUSH30”) opcode. - The
0x7E
(“PUSH31”) opcode. - The
0x7F
(“PUSH32”) opcode. - The
0xE4
(“RETF”) opcode. - The
0xF3
(“RETURN”) opcode. - The
0xEE
(“RETURNCONTRACT”) opcode. - The
0x3E
(“RETURNDATACOPY”) opcode. - The
0xF7
(“RETURNDATALOAD”) opcode. - The
0x3D
(“RETURNDATASIZE”) opcode. - The
0xFD
(“REVERT”) opcode. - The
0xE0
(“RJUMP”) opcode. - The
0xE1
(“RJUMPI”) opcode. - The
0xE2
(“RJUMPV”) opcode. - The
0x1D
(“SAR”) opcode. - The
0x05
(“SDIV”) opcode. - The
0x47
(“SELFBALANCE”) opcode. - The
0xFF
(“SELFDESTRUCT”) opcode. - The
0x13
(“SGT”) opcode. - The
0x1B
(“SHL”) opcode. - The
0x1C
(“SHR”) opcode. - The
0x0B
(“SIGNEXTEND”) opcode. - The
0x54
(“SLOAD”) opcode. - The
0x12
(“SLT”) opcode. - The
0x07
(“SMOD”) opcode. - The
0x55
(“SSTORE”) opcode. - The
0xFA
(“STATICCALL”) opcode. - The
0x00
(“STOP”) opcode. - The
0x03
(“SUB”) opcode. - The
0x90
(“SWAP1”) opcode. - The
0x91
(“SWAP2”) opcode. - The
0x92
(“SWAP3”) opcode. - The
0x93
(“SWAP4”) opcode. - The
0x94
(“SWAP5”) opcode. - The
0x95
(“SWAP6”) opcode. - The
0x96
(“SWAP7”) opcode. - The
0x97
(“SWAP8”) opcode. - The
0x98
(“SWAP9”) opcode. - The
0x99
(“SWAP10”) opcode. - The
0x9A
(“SWAP11”) opcode. - The
0x9B
(“SWAP12”) opcode. - The
0x9C
(“SWAP13”) opcode. - The
0x9D
(“SWAP14”) opcode. - The
0x9E
(“SWAP15”) opcode. - The
0x9F
(“SWAP16”) opcode. - The
0xE7
(“SWAPN”) opcode. - The
0x42
(“TIMESTAMP”) opcode. - The
0x5C
(“TLOAD”) opcode. - The
0x5D
(“TSTORE”) opcode. - The
0x18
(“XOR”) opcode.
Functions§
- Sets the immediate bytes number.
- Returns the instruction function for the given opcode and spec.
- Make boxed instruction table that calls
f
closure for every instruction. - Make instruction table.
- Sets the EOF flag to false.
- Sets the number of stack inputs and outputs.
- Sets the terminating flag to true.
- Updates a boxed instruction with a new one.
Type Aliases§
- EVM boxed dynamic opcode function signature.
- A table of boxed instructions.
- EVM dynamic opcode function signature.
- EVM opcode function signature.
- Instruction table is list of instruction function pointers mapped to 256 EVM opcodes.