# Functions
NewDecompiler initializes a new Decompiler with the given bytecode.
No description provided by the author
StringToOp finds the opcode whose name is stored in `str`.
# Constants
ADD performs addition operation.
ADDMOD performs addition followed by modulo operation.
ADDRESS retrieves the address of the current contract.
AND performs a bitwise AND operation.
BALANCE retrieves the balance of a given address.
BASEFEE retrieves the base fee for the block.
BLOBHASH retrieves the blob hash.
BLOCKHASH retrieves the hash of a block.
BYTE retrieves a specific byte from a value.
CALL initiates a new message call.
CALLCODE calls a contract with a different code.
CALLDATACOPY copies call data to memory.
CALLDATALOAD loads data from the call payload.
CALLDATASIZE retrieves the size of the call data.
CALLER retrieves the address of the caller.
CALLVALUE retrieves the value sent with the call.
CHAINID retrieves the chain ID.
CODECOPY copies code to memory.
CODESIZE retrieves the size of the code.
COINBASE retrieves the address of the block miner.
CREATE creates a new contract.
CREATE2 creates a new contract with a deterministic address.
DELEGATECALL calls a contract as a delegate.
DIFFICULTY retrieves the difficulty of the block.
DIV performs division operation.
DUP1 duplicates the 1st item from the top of the stack.
DUP10 duplicates the 10th item from the top of the stack.
DUP11 duplicates the 11th item from the top of the stack.
DUP12 duplicates the 12th item from the top of the stack.
DUP13 duplicates the 13th item from the top of the stack.
DUP14 duplicates the 14th item from the top of the stack.
DUP15 duplicates the 15th item from the top of the stack.
DUP16 duplicates the 16th item from the top of the stack.
DUP2 duplicates the 2nd item from the top of the stack.
DUP3 duplicates the 3rd item from the top of the stack.
DUP4 duplicates the 4th item from the top of the stack.
DUP5 duplicates the 5th item from the top of the stack.
DUP6 duplicates the 6th item from the top of the stack.
DUP7 duplicates the 7th item from the top of the stack.
DUP8 duplicates the 8th item from the top of the stack.
DUP9 duplicates the 9th item from the top of the stack.
EQ checks if two values are equal.
EXP performs exponential operation.
EXTCODECOPY copies external contract code to memory.
EXTCODEHASH retrieves the hash of an external contract's code.
EXTCODESIZE retrieves the size of an external contract's code.
GAS retrieves the amount of gas remaining.
GASLIMIT retrieves the gas limit for the block.
GASPRICE retrieves the price of gas.
GT checks if one value is greater than another.
INVALID represents an invalid opcode.
ISZERO checks if a value is zero.
JUMP sets the program counter to a specific address.
JUMPDEST marks a valid destination for jumps.
JUMPI conditionally sets the program counter to a specific address.
KECCAK256 computes the Keccak-256 hash.
LOG0 logs a message with 0 indexed topics.
LOG1 logs a message with 1 indexed topic.
LOG2 logs a message with 2 indexed topics.
LOG3 logs a message with 3 indexed topics.
LOG4 logs a message with 4 indexed topics.
LT checks if one value is less than another.
MLOAD loads a word from memory at a specific address.
MOD returns the remainder after division.
MSIZE retrieves the size of active memory.
MSTORE stores a word to memory at a specific address.
MSTORE8 stores a byte to memory at a specific address.
MUL performs multiplication operation.
MULMOD performs multiplication followed by modulo operation.
NOT performs a bitwise NOT operation.
NUMBER retrieves the block number.
OR performs a bitwise OR operation.
ORIGIN retrieves the address that originated the current call.
PC retrieves the value of the program counter.
POP removes the top item from the stack.
Same as DIFFICULTY.
PUSH0 pushes a zero byte onto the stack.
PUSH1 pushes a 1-byte item onto the stack.
PUSH10 pushes a 10-byte item onto the stack.
PUSH11 pushes an 11-byte item onto the stack.
PUSH12 pushes a 12-byte item onto the stack.
PUSH13 pushes a 13-byte item onto the stack.
PUSH14 pushes a 14-byte item onto the stack.
PUSH15 pushes a 15-byte item onto the stack.
PUSH16 pushes a 16-byte item onto the stack.
PUSH17 pushes a 17-byte item onto the stack.
PUSH18 pushes an 18-byte item onto the stack.
PUSH19 pushes a 19-byte item onto the stack.
PUSH2 pushes a 2-byte item onto the stack.
PUSH20 pushes a 20-byte item onto the stack.
PUSH21 pushes a 21-byte item onto the stack.
PUSH22 pushes a 22-byte item onto the stack.
PUSH23 pushes a 23-byte item onto the stack.
PUSH24 pushes a 24-byte item onto the stack.
PUSH25 pushes a 25-byte item onto the stack.
PUSH26 pushes a 26-byte item onto the stack.
PUSH27 pushes a 27-byte item onto the stack.
PUSH28 pushes a 28-byte item onto the stack.
PUSH29 pushes a 29-byte item onto the stack.
PUSH3 pushes a 3-byte item onto the stack.
PUSH30 pushes a 30-byte item onto the stack.
PUSH31 pushes a 31-byte item onto the stack.
PUSH32 pushes a 32-byte item onto the stack.
PUSH4 pushes a 4-byte item onto the stack.
PUSH5 pushes a 5-byte item onto the stack.
PUSH6 pushes a 6-byte item onto the stack.
PUSH7 pushes a 7-byte item onto the stack.
PUSH8 pushes an 8-byte item onto the stack.
PUSH9 pushes a 9-byte item onto the stack.
Same as DIFFICULTY.
RETURN halts execution and returns output data.
RETURNDATACOPY copies return data to memory.
RETURNDATASIZE retrieves the size of the return data.
REVERT stops execution and reverts state changes.
SAR performs an arithmetic right shift.
SDIV performs signed division operation.
SELFBALANCE retrieves the balance of the contract itself.
SELFDESTRUCT destroys the current contract.
SGT checks if one signed value is greater than another.
SHL shifts a value to the left.
SHR shifts a value to the right.
SIGNEXTEND extends the sign bit to the left.
SLOAD loads a word from storage at a specific address.
SLT checks if one signed value is less than another.
SMOD returns the signed remainder after division.
SSTORE stores a word to storage at a specific address.
STATICCALL calls a contract without state modification.
STOP halts execution.
SUB performs subtraction operation.
SWAP1 swaps the top two items on the stack.
SWAP10 swaps the top item with the 10th item below it.
SWAP11 swaps the top item with the 11th item below it.
SWAP12 swaps the top item with the 12th item below it.
SWAP13 swaps the top item with the 13th item below it.
SWAP14 swaps the top item with the 14th item below it.
SWAP15 swaps the top item with the 15th item below it.
SWAP16 swaps the top item with the 16th item below it.
SWAP2 swaps the top item with the 2nd item below it.
SWAP3 swaps the top item with the 3rd item below it.
SWAP4 swaps the top item with the 4th item below it.
SWAP5 swaps the top item with the 5th item below it.
SWAP6 swaps the top item with the 6th item below it.
SWAP7 swaps the top item with the 7th item below it.
SWAP8 swaps the top item with the 8th item below it.
SWAP9 swaps the top item with the 9th item below it.
TIMESTAMP retrieves the timestamp of the block.
TLOAD loads from transactional storage.
TSTORE stores to transactional storage.
XOR performs a bitwise XOR operation.
# Variables
No description provided by the author
# Structs
Decompiler is responsible for decompiling Ethereum bytecode into a set of instructions.
EventTreeNode represents a node in the opcode execution tree that represents an event.
FunctionTreeNode represents a node in the opcode execution tree that represents a function.
Instruction represents an optcode instruction.
No description provided by the author
TreeNode represents a node in the opcode execution tree.
# Type aliases
OpCode represents an Ethereum operation code (opcode).