use crate::{opcodes, OpCode};
opcodes! {
Shanghai => Shanghai {
0x00 => STOP {
gas: 0,
inputs: 0,
outputs: 0,
description: "Halts execution",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x01 => ADD {
gas: 3,
inputs: 2,
outputs: 1,
description: "Addition operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x02 => MUL {
gas: 5,
inputs: 2,
outputs: 1,
description: "Multiplication operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x03 => SUB {
gas: 3,
inputs: 2,
outputs: 1,
description: "Subtraction operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x04 => DIV {
gas: 5,
inputs: 2,
outputs: 1,
description: "Integer division operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x05 => SDIV {
gas: 5,
inputs: 2,
outputs: 1,
description: "Signed integer division operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x06 => MOD {
gas: 5,
inputs: 2,
outputs: 1,
description: "Modulo remainder operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x07 => SMOD {
gas: 5,
inputs: 2,
outputs: 1,
description: "Signed modulo remainder operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x08 => ADDMOD {
gas: 8,
inputs: 3,
outputs: 1,
description: "Modulo addition operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x09 => MULMOD {
gas: 8,
inputs: 3,
outputs: 1,
description: "Modulo multiplication operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x0a => EXP {
gas: 10,
inputs: 2,
outputs: 1,
description: "Exponential operation",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x0b => SIGNEXTEND {
gas: 5,
inputs: 2,
outputs: 1,
description: "Extend length of two's complement signed integer",
introduced_in: Frontier,
group: StopArithmetic,
eip: None,
gas_history: [],
},
0x10 => LT {
gas: 3,
inputs: 2,
outputs: 1,
description: "Less-than comparison",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x11 => GT {
gas: 3,
inputs: 2,
outputs: 1,
description: "Greater-than comparison",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x12 => SLT {
gas: 3,
inputs: 2,
outputs: 1,
description: "Signed less-than comparison",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x13 => SGT {
gas: 3,
inputs: 2,
outputs: 1,
description: "Signed greater-than comparison",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x14 => EQ {
gas: 3,
inputs: 2,
outputs: 1,
description: "Equality comparison",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x15 => ISZERO {
gas: 3,
inputs: 1,
outputs: 1,
description: "Simple not operator",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x16 => AND {
gas: 3,
inputs: 2,
outputs: 1,
description: "Bitwise AND operation",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x17 => OR {
gas: 3,
inputs: 2,
outputs: 1,
description: "Bitwise OR operation",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x18 => XOR {
gas: 3,
inputs: 2,
outputs: 1,
description: "Bitwise XOR operation",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x19 => NOT {
gas: 3,
inputs: 1,
outputs: 1,
description: "Bitwise NOT operation",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x1a => BYTE {
gas: 3,
inputs: 2,
outputs: 1,
description: "Retrieve single byte from word",
introduced_in: Frontier,
group: ComparisonBitwiseLogic,
eip: None,
gas_history: [],
},
0x20 => KECCAK256 {
gas: 30,
inputs: 2,
outputs: 1,
description: "Compute Keccak-256 hash",
introduced_in: Frontier,
group: Sha3,
eip: None,
gas_history: [],
},
0x30 => ADDRESS {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get address of currently executing account",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x31 => BALANCE {
gas: 20,
inputs: 1,
outputs: 1,
description: "Get balance of the given account",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x32 => ORIGIN {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get execution origination address",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x33 => CALLER {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get caller address",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x34 => CALLVALUE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get deposited value by instruction/transaction",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x35 => CALLDATALOAD {
gas: 3,
inputs: 1,
outputs: 1,
description: "Get input data of current environment",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x36 => CALLDATASIZE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get size of input data in current environment",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x37 => CALLDATACOPY {
gas: 3,
inputs: 3,
outputs: 0,
description: "Copy input data in current environment to memory",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x38 => CODESIZE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get size of code running in current environment",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x39 => CODECOPY {
gas: 3,
inputs: 3,
outputs: 0,
description: "Copy code running in current environment to memory",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x3a => GASPRICE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get price of gas in current environment",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x3b => EXTCODESIZE {
gas: 20,
inputs: 1,
outputs: 1,
description: "Get size of an account's code",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x3c => EXTCODECOPY {
gas: 20,
inputs: 4,
outputs: 0,
description: "Copy an account's code to memory",
introduced_in: Frontier,
group: EnvironmentalInformation,
eip: None,
gas_history: [],
},
0x40 => BLOCKHASH {
gas: 20,
inputs: 1,
outputs: 1,
description: "Get hash of one of the 256 most recent complete blocks",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x41 => COINBASE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the block's beneficiary address",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x42 => TIMESTAMP {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the block's timestamp",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x43 => NUMBER {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the block's number",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x44 => DIFFICULTY {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the block's difficulty",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x45 => GASLIMIT {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the block's gas limit",
introduced_in: Frontier,
group: BlockInformation,
eip: None,
gas_history: [],
},
0x50 => POP {
gas: 2,
inputs: 1,
outputs: 0,
description: "Remove item from stack",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x51 => MLOAD {
gas: 3,
inputs: 1,
outputs: 1,
description: "Load word from memory",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x52 => MSTORE {
gas: 3,
inputs: 2,
outputs: 0,
description: "Save word to memory",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x53 => MSTORE8 {
gas: 3,
inputs: 2,
outputs: 0,
description: "Save byte to memory",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x54 => SLOAD {
gas: 50,
inputs: 1,
outputs: 1,
description: "Load word from storage",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x55 => SSTORE {
gas: 0,
inputs: 2,
outputs: 0,
description: "Save word to storage",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x56 => JUMP {
gas: 8,
inputs: 1,
outputs: 0,
description: "Alter the program counter",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x57 => JUMPI {
gas: 10,
inputs: 2,
outputs: 0,
description: "Conditionally alter the program counter",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x58 => PC {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the value of the program counter prior to increment",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x59 => MSIZE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the size of active memory in bytes",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x5a => GAS {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the amount of available gas",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x5b => JUMPDEST {
gas: 1,
inputs: 0,
outputs: 0,
description: "Mark a valid destination for jumps",
introduced_in: Frontier,
group: StackMemoryStorageFlow,
eip: None,
gas_history: [],
},
0x60 => PUSH1 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 1-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x61 => PUSH2 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 2-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x62 => PUSH3 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 3-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x63 => PUSH4 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 4-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x64 => PUSH5 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 5-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x65 => PUSH6 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 6-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x66 => PUSH7 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 7-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x67 => PUSH8 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 8-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x68 => PUSH9 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 9-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x69 => PUSH10 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 10-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6a => PUSH11 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 11-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6b => PUSH12 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 12-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6c => PUSH13 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 13-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6d => PUSH14 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 14-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6e => PUSH15 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 15-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x6f => PUSH16 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 16-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x70 => PUSH17 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 17-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x71 => PUSH18 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 18-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x72 => PUSH19 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 19-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x73 => PUSH20 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 20-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x74 => PUSH21 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 21-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x75 => PUSH22 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 22-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x76 => PUSH23 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 23-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x77 => PUSH24 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 24-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x78 => PUSH25 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 25-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x79 => PUSH26 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 26-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7a => PUSH27 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 27-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7b => PUSH28 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 28-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7c => PUSH29 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 29-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7d => PUSH30 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 30-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7e => PUSH31 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 31-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x7f => PUSH32 {
gas: 3,
inputs: 0,
outputs: 1,
description: "Place 32-byte item on stack",
introduced_in: Frontier,
group: Push,
eip: None,
gas_history: [],
},
0x80 => DUP1 {
gas: 3,
inputs: 1,
outputs: 2,
description: "Duplicate 1st stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x81 => DUP2 {
gas: 3,
inputs: 2,
outputs: 3,
description: "Duplicate 2nd stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x82 => DUP3 {
gas: 3,
inputs: 3,
outputs: 4,
description: "Duplicate 3rd stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x83 => DUP4 {
gas: 3,
inputs: 4,
outputs: 5,
description: "Duplicate 4th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x84 => DUP5 {
gas: 3,
inputs: 5,
outputs: 6,
description: "Duplicate 5th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x85 => DUP6 {
gas: 3,
inputs: 6,
outputs: 7,
description: "Duplicate 6th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x86 => DUP7 {
gas: 3,
inputs: 7,
outputs: 8,
description: "Duplicate 7th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x87 => DUP8 {
gas: 3,
inputs: 8,
outputs: 9,
description: "Duplicate 8th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x88 => DUP9 {
gas: 3,
inputs: 9,
outputs: 10,
description: "Duplicate 9th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x89 => DUP10 {
gas: 3,
inputs: 10,
outputs: 11,
description: "Duplicate 10th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8a => DUP11 {
gas: 3,
inputs: 11,
outputs: 12,
description: "Duplicate 11th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8b => DUP12 {
gas: 3,
inputs: 12,
outputs: 13,
description: "Duplicate 12th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8c => DUP13 {
gas: 3,
inputs: 13,
outputs: 14,
description: "Duplicate 13th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8d => DUP14 {
gas: 3,
inputs: 14,
outputs: 15,
description: "Duplicate 14th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8e => DUP15 {
gas: 3,
inputs: 15,
outputs: 16,
description: "Duplicate 15th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x8f => DUP16 {
gas: 3,
inputs: 16,
outputs: 17,
description: "Duplicate 16th stack item",
introduced_in: Frontier,
group: Duplication,
eip: None,
gas_history: [],
},
0x90 => SWAP1 {
gas: 3,
inputs: 2,
outputs: 2,
description: "Exchange 1st and 3rd stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x91 => SWAP2 {
gas: 3,
inputs: 3,
outputs: 3,
description: "Exchange 1st and 4th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x92 => SWAP3 {
gas: 3,
inputs: 4,
outputs: 4,
description: "Exchange 1st and 4th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x93 => SWAP4 {
gas: 3,
inputs: 5,
outputs: 5,
description: "Exchange 1st and 5th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x94 => SWAP5 {
gas: 3,
inputs: 6,
outputs: 6,
description: "Exchange 1st and 6th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x95 => SWAP6 {
gas: 3,
inputs: 7,
outputs: 7,
description: "Exchange 1st and 7th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x96 => SWAP7 {
gas: 3,
inputs: 8,
outputs: 8,
description: "Exchange 1st and 8th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x97 => SWAP8 {
gas: 3,
inputs: 9,
outputs: 9,
description: "Exchange 1st and 9th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x98 => SWAP9 {
gas: 3,
inputs: 10,
outputs: 10,
description: "Exchange 1st and 10th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x99 => SWAP10 {
gas: 3,
inputs: 11,
outputs: 11,
description: "Exchange 1st and 11th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9a => SWAP11 {
gas: 3,
inputs: 12,
outputs: 12,
description: "Exchange 1st and 12th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9b => SWAP12 {
gas: 3,
inputs: 13,
outputs: 13,
description: "Exchange 1st and 13th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9c => SWAP13 {
gas: 3,
inputs: 14,
outputs: 14,
description: "Exchange 1st and 14th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9d => SWAP14 {
gas: 3,
inputs: 15,
outputs: 15,
description: "Exchange 1st and 15th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9e => SWAP15 {
gas: 3,
inputs: 16,
outputs: 16,
description: "Exchange 1st and 16th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0x9f => SWAP16 {
gas: 3,
inputs: 17,
outputs: 17,
description: "Exchange 1st and 17th stack items",
introduced_in: Frontier,
group: Exchange,
eip: None,
gas_history: [],
},
0xa0 => LOG0 {
gas: 375,
inputs: 2,
outputs: 0,
description: "Append log record with no topics",
introduced_in: Frontier,
group: Logging,
eip: None,
gas_history: [],
},
0xa1 => LOG1 {
gas: 750,
inputs: 3,
outputs: 0,
description: "Append log record with 1 topics",
introduced_in: Frontier,
group: Logging,
eip: None,
gas_history: [],
},
0xa2 => LOG2 {
gas: 1125,
inputs: 4,
outputs: 0,
description: "Append log record with 2 topics",
introduced_in: Frontier,
group: Logging,
eip: None,
gas_history: [],
},
0xa3 => LOG3 {
gas: 1500,
inputs: 5,
outputs: 0,
description: "Append log record with 3 topics",
introduced_in: Frontier,
group: Logging,
eip: None,
gas_history: [],
},
0xa4 => LOG4 {
gas: 1875,
inputs: 6,
outputs: 0,
description: "Append log record with 4 topics",
introduced_in: Frontier,
group: Logging,
eip: None,
gas_history: [],
},
0xf0 => CREATE {
gas: 32000,
inputs: 3,
outputs: 1,
description: "Create a new account with associated code",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xf1 => CALL {
gas: 100,
inputs: 7,
outputs: 1,
description: "Message-call into an account",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xf2 => CALLCODE {
gas: 100,
inputs: 7,
outputs: 1,
description: "Message-call with alternative account's code",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xf3 => RETURN {
gas: 0,
inputs: 2,
outputs: 0,
description: "Halt execution returning output data",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xfe => INVALID {
gas: 0,
inputs: 0,
outputs: 0,
description: "Designated invalid instruction",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xff => SELFDESTRUCT {
gas: 5000,
inputs: 1,
outputs: 0,
description: "Halt execution and register account for deletion",
introduced_in: Frontier,
group: System,
eip: None,
gas_history: [],
},
0xf4 => DELEGATECALL {
gas: 40,
inputs: 6,
outputs: 1,
description: "Message-call with alternative account's code persisting current context",
introduced_in: Homestead,
group: System,
eip: None,
gas_history: [],
},
0x3d => RETURNDATASIZE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get size of output data from previous call",
introduced_in: Byzantium,
group: EnvironmentalInformation,
eip: Some(211),
gas_history: [],
},
0x3e => RETURNDATACOPY {
gas: 3,
inputs: 3,
outputs: 0,
description: "Copy output data from previous call to memory",
introduced_in: Byzantium,
group: EnvironmentalInformation,
eip: Some(211),
gas_history: [],
},
0xfa => STATICCALL {
gas: 40,
inputs: 6,
outputs: 1,
description: "Static message-call into an account",
introduced_in: Byzantium,
group: System,
eip: Some(214),
gas_history: [],
},
0xfd => REVERT {
gas: 0,
inputs: 2,
outputs: 0,
description: "Stop execution and revert state changes",
introduced_in: Byzantium,
group: System,
eip: Some(140),
gas_history: [],
},
0x1b => SHL {
gas: 3,
inputs: 2,
outputs: 1,
description: "Left shift operation",
introduced_in: Constantinople,
group: ComparisonBitwiseLogic,
eip: Some(145),
gas_history: [],
},
0x1c => SHR {
gas: 3,
inputs: 2,
outputs: 1,
description: "Logical right shift operation",
introduced_in: Constantinople,
group: ComparisonBitwiseLogic,
eip: Some(145),
gas_history: [],
},
0x1d => SAR {
gas: 3,
inputs: 2,
outputs: 1,
description: "Arithmetic right shift operation",
introduced_in: Constantinople,
group: ComparisonBitwiseLogic,
eip: Some(145),
gas_history: [],
},
0x3f => EXTCODEHASH {
gas: 100,
inputs: 1,
outputs: 1,
description: "Get hash of an account's code",
introduced_in: Constantinople,
group: EnvironmentalInformation,
eip: Some(1052),
gas_history: [],
},
0xf5 => CREATE2 {
gas: 32000,
inputs: 4,
outputs: 1,
description: "Create account with associated code at specified address",
introduced_in: Constantinople,
group: System,
eip: Some(1014),
gas_history: [],
},
0x46 => CHAINID {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the chain ID",
introduced_in: Istanbul,
group: BlockInformation,
eip: Some(1344),
gas_history: [],
},
0x47 => SELFBALANCE {
gas: 5,
inputs: 0,
outputs: 1,
description: "Get balance of currently executing account",
introduced_in: Istanbul,
group: BlockInformation,
eip: Some(1884),
gas_history: [],
},
0x48 => BASEFEE {
gas: 2,
inputs: 0,
outputs: 1,
description: "Get the base fee",
introduced_in: London,
group: BlockInformation,
eip: Some(3198),
gas_history: [],
},
0x5f => PUSH0 {
gas: 2,
inputs: 0,
outputs: 1,
description: "Place 0 byte item on stack",
introduced_in: Shanghai,
group: Push,
eip: Some(3855),
gas_history: [],
},
}
}