@tevm/voltaire / primitives/Opcode
primitives/Opcode
Type Aliases
BrandedOpcode
BrandedOpcode =Defined in: src/primitives/Opcode/OpcodeType.ts:6 Branded type for EVM opcodes (number 0x00-0xFF)number&object
Type Declaration
[brand]
readonly[brand]:"Opcode"
Info
Info = object
Defined in: src/primitives/Opcode/OpcodeType.ts:23
Opcode metadata structure
Properties
gasCost
gasCost: number
Defined in: src/primitives/Opcode/OpcodeType.ts:25
Base gas cost (may be dynamic at runtime)
name
name: string
Defined in: src/primitives/Opcode/OpcodeType.ts:31
Opcode name
stackInputs
stackInputs: number
Defined in: src/primitives/Opcode/OpcodeType.ts:27
Number of stack items consumed
stackOutputs
stackOutputs: number
Defined in: src/primitives/Opcode/OpcodeType.ts:29
Number of stack items produced
Instruction
Instruction = object
Defined in: src/primitives/Opcode/OpcodeType.ts:11
Instruction with opcode and optional immediate data
Properties
immediate?
Defined in: src/primitives/Opcode/OpcodeType.ts:17 Immediate data for PUSH operationsoptionalimmediate:Uint8Array
offset
offset: number
Defined in: src/primitives/Opcode/OpcodeType.ts:13
Program counter offset
opcode
opcode: BrandedOpcode
Defined in: src/primitives/Opcode/OpcodeType.ts:15
The opcode
Variables
ADD
Defined in: src/primitives/Opcode/constants.js:10constADD:BrandedOpcode
ADDMOD
Defined in: src/primitives/Opcode/constants.js:17constADDMOD:BrandedOpcode
ADDRESS
Defined in: src/primitives/Opcode/constants.js:52constADDRESS:BrandedOpcode
AND
Defined in: src/primitives/Opcode/constants.js:37constAND:BrandedOpcode
AUTH
Defined in: src/primitives/Opcode/constants.js:312constAUTH:BrandedOpcode
AUTHCALL
Defined in: src/primitives/Opcode/constants.js:313constAUTHCALL:BrandedOpcode
BALANCE
Defined in: src/primitives/Opcode/constants.js:55constBALANCE:BrandedOpcode
BASEFEE
Defined in: src/primitives/Opcode/constants.js:121constBASEFEE:BrandedOpcode
BLOBBASEFEE
Defined in: src/primitives/Opcode/constants.js:127constBLOBBASEFEE:BrandedOpcode
BLOBHASH
Defined in: src/primitives/Opcode/constants.js:124constBLOBHASH:BrandedOpcode
BLOCKHASH
Defined in: src/primitives/Opcode/constants.js:97constBLOCKHASH:BrandedOpcode
BrandedOpcode
Defined in: src/primitives/Opcode/Opcode.js:164constBrandedOpcode:object
Type Declaration
ADD
ADD: BrandedOpcode
ADDMOD
ADDMOD: BrandedOpcode
ADDRESS
ADDRESS: BrandedOpcode
AND
AND: BrandedOpcode
AUTH
AUTH: BrandedOpcode
AUTHCALL
AUTHCALL: BrandedOpcode
BALANCE
BALANCE: BrandedOpcode
BASEFEE
BASEFEE: BrandedOpcode
BLOBBASEFEE
BLOBBASEFEE: BrandedOpcode
BLOBHASH
BLOBHASH: BrandedOpcode
BLOCKHASH
BLOCKHASH: BrandedOpcode
BYTE
BYTE: BrandedOpcode
CALL
CALL: BrandedOpcode
CALLCODE
CALLCODE: BrandedOpcode
CALLDATACOPY
CALLDATACOPY: BrandedOpcode
CALLDATALOAD
CALLDATALOAD: BrandedOpcode
CALLDATASIZE
CALLDATASIZE: BrandedOpcode
CALLER
CALLER: BrandedOpcode
CALLVALUE
CALLVALUE: BrandedOpcode
CHAINID
CHAINID: BrandedOpcode
CODECOPY
CODECOPY: BrandedOpcode
CODESIZE
CODESIZE: BrandedOpcode
COINBASE
COINBASE: BrandedOpcode
CREATE
CREATE: BrandedOpcode
CREATE2
CREATE2: BrandedOpcode
DELEGATECALL
DELEGATECALL: BrandedOpcode
DIFFICULTY
DIFFICULTY: BrandedOpcode
disassemble()
disassemble: (Disassemble bytecode to human-readable stringsbytecode) =>string[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
string[]
Array of formatted instruction strings
Example
DIV
DIV: BrandedOpcode
DUP1
DUP1: BrandedOpcode
DUP10
DUP10: BrandedOpcode
DUP11
DUP11: BrandedOpcode
DUP12
DUP12: BrandedOpcode
DUP13
DUP13: BrandedOpcode
DUP14
DUP14: BrandedOpcode
DUP15
DUP15: BrandedOpcode
DUP16
DUP16: BrandedOpcode
DUP2
DUP2: BrandedOpcode
DUP3
DUP3: BrandedOpcode
DUP4
DUP4: BrandedOpcode
DUP5
DUP5: BrandedOpcode
DUP6
DUP6: BrandedOpcode
DUP7
DUP7: BrandedOpcode
DUP8
DUP8: BrandedOpcode
DUP9
DUP9: BrandedOpcode
dupPosition()
dupPosition: (Get position for DUP instructionopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a DUP
Example
EQ
EQ: BrandedOpcode
EXP
EXP: BrandedOpcode
EXTCODECOPY
EXTCODECOPY: BrandedOpcode
EXTCODEHASH
EXTCODEHASH: BrandedOpcode
EXTCODESIZE
EXTCODESIZE: BrandedOpcode
format()
format: (Format instruction to human-readable stringinstruction) =>string
Parameters
instruction
Instruction
Instruction to format
Returns
string
Human-readable string
Example
GAS
GAS: BrandedOpcode
GASLIMIT
GASLIMIT: BrandedOpcode
GASPRICE
GASPRICE: BrandedOpcode
getCategory()
getCategory: (Get opcode categoryopcode) =>string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Category name
Example
getDescription()
getDescription: (Get human-readable description of an opcodeopcode) =>string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Description or generated description for PUSH/DUP/SWAP
Example
getGasCost()
getGasCost: (Get static gas cost for an opcodeopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Static gas cost or undefined if invalid
Example
getName()
getName: (Get mnemonic name of an opcode (alias for name)opcode) =>string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
getPushSize()
getPushSize: (Get PUSH data size in bytesopcode) =>number
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number
Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)
Example
getStackEffect()
getStackEffect: (Get stack effect for an opcodeopcode) => {pop:number;push:number; } |undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
{pop: number; push: number; } | undefined
Stack items consumed and produced
Example
getStackInput()
getStackInput: (Get number of stack items consumed by an opcodeopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items consumed
Example
getStackOutput()
getStackOutput: (Get number of stack items produced by an opcodeopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items produced
Example
GT
GT: BrandedOpcode
info()
info: (Get metadata for an opcodeopcode) =>Info|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
Info | undefined
Metadata with gas cost and stack requirements
Example
INVALID
INVALID: BrandedOpcode
isDup()
isDup: (Check if opcode is a DUP instructionopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if DUP1-DUP16
Example
isJump()
isJump: (Check if opcode is a jumpopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMP or JUMPI
Example
isJumpDestination()
isJumpDestination: (Check if opcode is JUMPDESTopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMPDEST
Example
isLog()
isLog: (Check if opcode is a LOG instructionopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if LOG0-LOG4
Example
isPush()
isPush: (Check if opcode is a PUSH instructionopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if PUSH0-PUSH32
Example
isSwap()
isSwap: (Check if opcode is a SWAP instructionopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if SWAP1-SWAP16
Example
isTerminating()
isTerminating: (Check if opcode terminates executionopcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
isTerminator()
isTerminator: (Check if opcode terminates execution (alias for isTerminating)opcode) =>boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
isValid()
isValid: (Check if opcode is validopcode) =>opcode is BrandedOpcode
Parameters
opcode
number
Byte value to check
Returns
opcode is BrandedOpcode
True if opcode is defined in the EVM
Example
isValidJumpDest()
isValidJumpDest: (Check if offset is a valid jump destinationbytecode,offset) =>boolean
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
offset
number
Byte offset to check
Returns
boolean
True if offset is a JUMPDEST and not inside immediate data
Example
isValidOpcode()
isValidOpcode: (Check if value is a valid opcode (alias for isValid)value) =>boolean
Parameters
value
number
Value to check
Returns
boolean
True if valid opcode
Example
ISZERO
ISZERO: BrandedOpcode
JUMP
JUMP: BrandedOpcode
JUMPDEST
JUMPDEST: BrandedOpcode
jumpDests()
jumpDests: (Find all valid JUMPDEST locationsbytecode) =>Set<number>
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Set<number>
Set of valid jump destinations (byte offsets)
Example
JUMPI
JUMPI: BrandedOpcode
KECCAK256
KECCAK256: BrandedOpcode
LOG0
LOG0: BrandedOpcode
LOG1
LOG1: BrandedOpcode
LOG2
LOG2: BrandedOpcode
LOG3
LOG3: BrandedOpcode
LOG4
LOG4: BrandedOpcode
logTopics()
logTopics: (Get number of topics for LOG instructionopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of topics (0-4), or undefined if not a LOG
Example
LT
LT: BrandedOpcode
MCOPY
MCOPY: BrandedOpcode
MLOAD
MLOAD: BrandedOpcode
MOD
MOD: BrandedOpcode
MSIZE
MSIZE: BrandedOpcode
MSTORE
MSTORE: BrandedOpcode
MSTORE8
MSTORE8: BrandedOpcode
MUL
MUL: BrandedOpcode
MULMOD
MULMOD: BrandedOpcode
name()
name: (Get name of an opcodeopcode) =>string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
NOT
NOT: BrandedOpcode
NUMBER
NUMBER: BrandedOpcode
OR
OR: BrandedOpcode
ORIGIN
ORIGIN: BrandedOpcode
parse()
parse: (Parse bytecode into instructionsbytecode) =>Instruction[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Instruction[]
Array of parsed instructions
Example
PC
PC: BrandedOpcode
POP
POP: BrandedOpcode
PUSH0
PUSH0: BrandedOpcode
PUSH1
PUSH1: BrandedOpcode
PUSH10
PUSH10: BrandedOpcode
PUSH11
PUSH11: BrandedOpcode
PUSH12
PUSH12: BrandedOpcode
PUSH13
PUSH13: BrandedOpcode
PUSH14
PUSH14: BrandedOpcode
PUSH15
PUSH15: BrandedOpcode
PUSH16
PUSH16: BrandedOpcode
PUSH17
PUSH17: BrandedOpcode
PUSH18
PUSH18: BrandedOpcode
PUSH19
PUSH19: BrandedOpcode
PUSH2
PUSH2: BrandedOpcode
PUSH20
PUSH20: BrandedOpcode
PUSH21
PUSH21: BrandedOpcode
PUSH22
PUSH22: BrandedOpcode
PUSH23
PUSH23: BrandedOpcode
PUSH24
PUSH24: BrandedOpcode
PUSH25
PUSH25: BrandedOpcode
PUSH26
PUSH26: BrandedOpcode
PUSH27
PUSH27: BrandedOpcode
PUSH28
PUSH28: BrandedOpcode
PUSH29
PUSH29: BrandedOpcode
PUSH3
PUSH3: BrandedOpcode
PUSH30
PUSH30: BrandedOpcode
PUSH31
PUSH31: BrandedOpcode
PUSH32
PUSH32: BrandedOpcode
PUSH4
PUSH4: BrandedOpcode
PUSH5
PUSH5: BrandedOpcode
PUSH6
PUSH6: BrandedOpcode
PUSH7
PUSH7: BrandedOpcode
PUSH8
PUSH8: BrandedOpcode
PUSH9
PUSH9: BrandedOpcode
pushBytes()
pushBytes: (Get number of bytes pushed by PUSH instructionopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of bytes (0-32), or undefined if not a PUSH
Example
pushOpcode()
pushOpcode: (Get PUSH opcode for given byte countbytes) =>BrandedOpcode
Parameters
bytes
number
Number of bytes (0-32)
Returns
BrandedOpcode
PUSH opcode for that size
Throws
If bytes is not 0-32Example
RETURN
RETURN: BrandedOpcode
RETURNDATACOPY
RETURNDATACOPY: BrandedOpcode
RETURNDATASIZE
RETURNDATASIZE: BrandedOpcode
REVERT
REVERT: BrandedOpcode
SAR
SAR: BrandedOpcode
SDIV
SDIV: BrandedOpcode
SELFBALANCE
SELFBALANCE: BrandedOpcode
SELFDESTRUCT
SELFDESTRUCT: BrandedOpcode
SGT
SGT: BrandedOpcode
SHL
SHL: BrandedOpcode
SHR
SHR: BrandedOpcode
SIGNEXTEND
SIGNEXTEND: BrandedOpcode
SLOAD
SLOAD: BrandedOpcode
SLT
SLT: BrandedOpcode
SMOD
SMOD: BrandedOpcode
SSTORE
SSTORE: BrandedOpcode
STATICCALL
STATICCALL: BrandedOpcode
STOP
STOP: BrandedOpcode
SUB
SUB: BrandedOpcode
SWAP1
SWAP1: BrandedOpcode
SWAP10
SWAP10: BrandedOpcode
SWAP11
SWAP11: BrandedOpcode
SWAP12
SWAP12: BrandedOpcode
SWAP13
SWAP13: BrandedOpcode
SWAP14
SWAP14: BrandedOpcode
SWAP15
SWAP15: BrandedOpcode
SWAP16
SWAP16: BrandedOpcode
SWAP2
SWAP2: BrandedOpcode
SWAP3
SWAP3: BrandedOpcode
SWAP4
SWAP4: BrandedOpcode
SWAP5
SWAP5: BrandedOpcode
SWAP6
SWAP6: BrandedOpcode
SWAP7
SWAP7: BrandedOpcode
SWAP8
SWAP8: BrandedOpcode
SWAP9
SWAP9: BrandedOpcode
swapPosition()
swapPosition: (Get position for SWAP instructionopcode) =>number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a SWAP
Example
TIMESTAMP
TIMESTAMP: BrandedOpcode
TLOAD
TLOAD: BrandedOpcode
TSTORE
TSTORE: BrandedOpcode
XOR
XOR: BrandedOpcode
BYTE
Defined in: src/primitives/Opcode/constants.js:41constBYTE:BrandedOpcode
CALL
Defined in: src/primitives/Opcode/constants.js:300constCALL:BrandedOpcode
CALLCODE
Defined in: src/primitives/Opcode/constants.js:301constCALLCODE:BrandedOpcode
CALLDATACOPY
Defined in: src/primitives/Opcode/constants.js:71constCALLDATACOPY:BrandedOpcode
CALLDATALOAD
Defined in: src/primitives/Opcode/constants.js:67constCALLDATALOAD:BrandedOpcode
CALLDATASIZE
Defined in: src/primitives/Opcode/constants.js:69constCALLDATASIZE:BrandedOpcode
CALLER
Defined in: src/primitives/Opcode/constants.js:61constCALLER:BrandedOpcode
CALLVALUE
Defined in: src/primitives/Opcode/constants.js:64constCALLVALUE:BrandedOpcode
CHAINID
Defined in: src/primitives/Opcode/constants.js:115constCHAINID:BrandedOpcode
CODECOPY
Defined in: src/primitives/Opcode/constants.js:76constCODECOPY:BrandedOpcode
CODESIZE
Defined in: src/primitives/Opcode/constants.js:73constCODESIZE:BrandedOpcode
COINBASE
Defined in: src/primitives/Opcode/constants.js:100constCOINBASE:BrandedOpcode
CREATE
Defined in: src/primitives/Opcode/constants.js:297constCREATE:BrandedOpcode
CREATE2
Defined in: src/primitives/Opcode/constants.js:309constCREATE2:BrandedOpcode
DELEGATECALL
Defined in: src/primitives/Opcode/constants.js:307constDELEGATECALL:BrandedOpcode
DIFFICULTY
Defined in: src/primitives/Opcode/constants.js:109constDIFFICULTY:BrandedOpcode
DIV
Defined in: src/primitives/Opcode/constants.js:13constDIV:BrandedOpcode
DUP1
Defined in: src/primitives/Opcode/constants.js:240constDUP1:BrandedOpcode
DUP10
Defined in: src/primitives/Opcode/constants.js:249constDUP10:BrandedOpcode
DUP11
Defined in: src/primitives/Opcode/constants.js:250constDUP11:BrandedOpcode
DUP12
Defined in: src/primitives/Opcode/constants.js:251constDUP12:BrandedOpcode
DUP13
Defined in: src/primitives/Opcode/constants.js:252constDUP13:BrandedOpcode
DUP14
Defined in: src/primitives/Opcode/constants.js:253constDUP14:BrandedOpcode
DUP15
Defined in: src/primitives/Opcode/constants.js:254constDUP15:BrandedOpcode
DUP16
Defined in: src/primitives/Opcode/constants.js:255constDUP16:BrandedOpcode
DUP2
Defined in: src/primitives/Opcode/constants.js:241constDUP2:BrandedOpcode
DUP3
Defined in: src/primitives/Opcode/constants.js:242constDUP3:BrandedOpcode
DUP4
Defined in: src/primitives/Opcode/constants.js:243constDUP4:BrandedOpcode
DUP5
Defined in: src/primitives/Opcode/constants.js:244constDUP5:BrandedOpcode
DUP6
Defined in: src/primitives/Opcode/constants.js:245constDUP6:BrandedOpcode
DUP7
Defined in: src/primitives/Opcode/constants.js:246constDUP7:BrandedOpcode
DUP8
Defined in: src/primitives/Opcode/constants.js:247constDUP8:BrandedOpcode
DUP9
Defined in: src/primitives/Opcode/constants.js:248constDUP9:BrandedOpcode
EQ
Defined in: src/primitives/Opcode/constants.js:33constEQ:BrandedOpcode
EXP
Defined in: src/primitives/Opcode/constants.js:23constEXP:BrandedOpcode
EXTCODECOPY
Defined in: src/primitives/Opcode/constants.js:85constEXTCODECOPY:BrandedOpcode
EXTCODEHASH
Defined in: src/primitives/Opcode/constants.js:92constEXTCODEHASH:BrandedOpcode
EXTCODESIZE
Defined in: src/primitives/Opcode/constants.js:82constEXTCODESIZE:BrandedOpcode
GAS
Defined in: src/primitives/Opcode/constants.js:148constGAS:BrandedOpcode
GASLIMIT
Defined in: src/primitives/Opcode/constants.js:112constGASLIMIT:BrandedOpcode
GASPRICE
Defined in: src/primitives/Opcode/constants.js:79constGASPRICE:BrandedOpcode
GT
Defined in: src/primitives/Opcode/constants.js:30constGT:BrandedOpcode
INVALID
Defined in: src/primitives/Opcode/constants.js:322constINVALID:BrandedOpcode
ISZERO
Defined in: src/primitives/Opcode/constants.js:34constISZERO:BrandedOpcode
JUMP
Defined in: src/primitives/Opcode/constants.js:144constJUMP:BrandedOpcode
JUMPDEST
Defined in: src/primitives/Opcode/constants.js:149constJUMPDEST:BrandedOpcode
JUMPI
Defined in: src/primitives/Opcode/constants.js:145constJUMPI:BrandedOpcode
KECCAK256
Defined in: src/primitives/Opcode/constants.js:47constKECCAK256:BrandedOpcode
LOG0
Defined in: src/primitives/Opcode/constants.js:290constLOG0:BrandedOpcode
LOG1
Defined in: src/primitives/Opcode/constants.js:291constLOG1:BrandedOpcode
LOG2
Defined in: src/primitives/Opcode/constants.js:292constLOG2:BrandedOpcode
LOG3
Defined in: src/primitives/Opcode/constants.js:293constLOG3:BrandedOpcode
LOG4
Defined in: src/primitives/Opcode/constants.js:294constLOG4:BrandedOpcode
LT
Defined in: src/primitives/Opcode/constants.js:29constLT:BrandedOpcode
MCOPY
Defined in: src/primitives/Opcode/constants.js:156constMCOPY:BrandedOpcode
MLOAD
Defined in: src/primitives/Opcode/constants.js:133constMLOAD:BrandedOpcode
MOD
Defined in: src/primitives/Opcode/constants.js:15constMOD:BrandedOpcode
MSIZE
Defined in: src/primitives/Opcode/constants.js:147constMSIZE:BrandedOpcode
MSTORE
Defined in: src/primitives/Opcode/constants.js:134constMSTORE:BrandedOpcode
MSTORE8
Defined in: src/primitives/Opcode/constants.js:137constMSTORE8:BrandedOpcode
MUL
Defined in: src/primitives/Opcode/constants.js:11constMUL:BrandedOpcode
MULMOD
Defined in: src/primitives/Opcode/constants.js:20constMULMOD:BrandedOpcode
NOT
Defined in: src/primitives/Opcode/constants.js:40constNOT:BrandedOpcode
NUMBER
Defined in: src/primitives/Opcode/constants.js:106constNUMBER:BrandedOpcode
OR
Defined in: src/primitives/Opcode/constants.js:38constOR:BrandedOpcode
ORIGIN
Defined in: src/primitives/Opcode/constants.js:58constORIGIN:BrandedOpcode
PC
Defined in: src/primitives/Opcode/constants.js:146constPC:BrandedOpcode
POP
Defined in: src/primitives/Opcode/constants.js:132constPOP:BrandedOpcode
PUSH0
Defined in: src/primitives/Opcode/constants.js:157constPUSH0:BrandedOpcode
PUSH1
Defined in: src/primitives/Opcode/constants.js:160constPUSH1:BrandedOpcode
PUSH10
Defined in: src/primitives/Opcode/constants.js:169constPUSH10:BrandedOpcode
PUSH11
Defined in: src/primitives/Opcode/constants.js:172constPUSH11:BrandedOpcode
PUSH12
Defined in: src/primitives/Opcode/constants.js:175constPUSH12:BrandedOpcode
PUSH13
Defined in: src/primitives/Opcode/constants.js:178constPUSH13:BrandedOpcode
PUSH14
Defined in: src/primitives/Opcode/constants.js:181constPUSH14:BrandedOpcode
PUSH15
Defined in: src/primitives/Opcode/constants.js:184constPUSH15:BrandedOpcode
PUSH16
Defined in: src/primitives/Opcode/constants.js:187constPUSH16:BrandedOpcode
PUSH17
Defined in: src/primitives/Opcode/constants.js:190constPUSH17:BrandedOpcode
PUSH18
Defined in: src/primitives/Opcode/constants.js:193constPUSH18:BrandedOpcode
PUSH19
Defined in: src/primitives/Opcode/constants.js:196constPUSH19:BrandedOpcode
PUSH2
Defined in: src/primitives/Opcode/constants.js:161constPUSH2:BrandedOpcode
PUSH20
Defined in: src/primitives/Opcode/constants.js:199constPUSH20:BrandedOpcode
PUSH21
Defined in: src/primitives/Opcode/constants.js:202constPUSH21:BrandedOpcode
PUSH22
Defined in: src/primitives/Opcode/constants.js:205constPUSH22:BrandedOpcode
PUSH23
Defined in: src/primitives/Opcode/constants.js:208constPUSH23:BrandedOpcode
PUSH24
Defined in: src/primitives/Opcode/constants.js:211constPUSH24:BrandedOpcode
PUSH25
Defined in: src/primitives/Opcode/constants.js:214constPUSH25:BrandedOpcode
PUSH26
Defined in: src/primitives/Opcode/constants.js:217constPUSH26:BrandedOpcode
PUSH27
Defined in: src/primitives/Opcode/constants.js:220constPUSH27:BrandedOpcode
PUSH28
Defined in: src/primitives/Opcode/constants.js:223constPUSH28:BrandedOpcode
PUSH29
Defined in: src/primitives/Opcode/constants.js:226constPUSH29:BrandedOpcode
PUSH3
Defined in: src/primitives/Opcode/constants.js:162constPUSH3:BrandedOpcode
PUSH30
Defined in: src/primitives/Opcode/constants.js:229constPUSH30:BrandedOpcode
PUSH31
Defined in: src/primitives/Opcode/constants.js:232constPUSH31:BrandedOpcode
PUSH32
Defined in: src/primitives/Opcode/constants.js:235constPUSH32:BrandedOpcode
PUSH4
Defined in: src/primitives/Opcode/constants.js:163constPUSH4:BrandedOpcode
PUSH5
Defined in: src/primitives/Opcode/constants.js:164constPUSH5:BrandedOpcode
PUSH6
Defined in: src/primitives/Opcode/constants.js:165constPUSH6:BrandedOpcode
PUSH7
Defined in: src/primitives/Opcode/constants.js:166constPUSH7:BrandedOpcode
PUSH8
Defined in: src/primitives/Opcode/constants.js:167constPUSH8:BrandedOpcode
PUSH9
Defined in: src/primitives/Opcode/constants.js:168constPUSH9:BrandedOpcode
RETURN
Defined in: src/primitives/Opcode/constants.js:304constRETURN:BrandedOpcode
RETURNDATACOPY
Defined in: src/primitives/Opcode/constants.js:90constRETURNDATACOPY:BrandedOpcode
RETURNDATASIZE
Defined in: src/primitives/Opcode/constants.js:88constRETURNDATASIZE:BrandedOpcode
REVERT
Defined in: src/primitives/Opcode/constants.js:319constREVERT:BrandedOpcode
SAR
Defined in: src/primitives/Opcode/constants.js:44constSAR:BrandedOpcode
SDIV
Defined in: src/primitives/Opcode/constants.js:14constSDIV:BrandedOpcode
SELFBALANCE
Defined in: src/primitives/Opcode/constants.js:118constSELFBALANCE:BrandedOpcode
SELFDESTRUCT
Defined in: src/primitives/Opcode/constants.js:325constSELFDESTRUCT:BrandedOpcode
SGT
Defined in: src/primitives/Opcode/constants.js:32constSGT:BrandedOpcode
SHL
Defined in: src/primitives/Opcode/constants.js:42constSHL:BrandedOpcode
SHR
Defined in: src/primitives/Opcode/constants.js:43constSHR:BrandedOpcode
SIGNEXTEND
Defined in: src/primitives/Opcode/constants.js:24constSIGNEXTEND:BrandedOpcode
SLOAD
Defined in: src/primitives/Opcode/constants.js:140constSLOAD:BrandedOpcode
SLT
Defined in: src/primitives/Opcode/constants.js:31constSLT:BrandedOpcode
SMOD
Defined in: src/primitives/Opcode/constants.js:16constSMOD:BrandedOpcode
SSTORE
Defined in: src/primitives/Opcode/constants.js:141constSSTORE:BrandedOpcode
STATICCALL
Defined in: src/primitives/Opcode/constants.js:316constSTATICCALL:BrandedOpcode
STOP
Defined in: src/primitives/Opcode/constants.js:9constSTOP:BrandedOpcode
SUB
Defined in: src/primitives/Opcode/constants.js:12constSUB:BrandedOpcode
SWAP1
Defined in: src/primitives/Opcode/constants.js:258constSWAP1:BrandedOpcode
SWAP10
Defined in: src/primitives/Opcode/constants.js:267constSWAP10:BrandedOpcode
SWAP11
Defined in: src/primitives/Opcode/constants.js:270constSWAP11:BrandedOpcode
SWAP12
Defined in: src/primitives/Opcode/constants.js:273constSWAP12:BrandedOpcode
SWAP13
Defined in: src/primitives/Opcode/constants.js:276constSWAP13:BrandedOpcode
SWAP14
Defined in: src/primitives/Opcode/constants.js:279constSWAP14:BrandedOpcode
SWAP15
Defined in: src/primitives/Opcode/constants.js:282constSWAP15:BrandedOpcode
SWAP16
Defined in: src/primitives/Opcode/constants.js:285constSWAP16:BrandedOpcode
SWAP2
Defined in: src/primitives/Opcode/constants.js:259constSWAP2:BrandedOpcode
SWAP3
Defined in: src/primitives/Opcode/constants.js:260constSWAP3:BrandedOpcode
SWAP4
Defined in: src/primitives/Opcode/constants.js:261constSWAP4:BrandedOpcode
SWAP5
Defined in: src/primitives/Opcode/constants.js:262constSWAP5:BrandedOpcode
SWAP6
Defined in: src/primitives/Opcode/constants.js:263constSWAP6:BrandedOpcode
SWAP7
Defined in: src/primitives/Opcode/constants.js:264constSWAP7:BrandedOpcode
SWAP8
Defined in: src/primitives/Opcode/constants.js:265constSWAP8:BrandedOpcode
SWAP9
Defined in: src/primitives/Opcode/constants.js:266constSWAP9:BrandedOpcode
TIMESTAMP
Defined in: src/primitives/Opcode/constants.js:103constTIMESTAMP:BrandedOpcode
TLOAD
Defined in: src/primitives/Opcode/constants.js:152constTLOAD:BrandedOpcode
TSTORE
Defined in: src/primitives/Opcode/constants.js:153constTSTORE:BrandedOpcode
XOR
Defined in: src/primitives/Opcode/constants.js:39constXOR:BrandedOpcode
Functions
_disassemble()
_disassemble(Defined in: src/primitives/Opcode/disassemble.js:22 Disassemble bytecode to human-readable stringsbytecode):string[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
string[]
Array of formatted instruction strings
Example
_dupPosition()
_dupPosition(Defined in: src/primitives/Opcode/dupPosition.js:17 Get position for DUP instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a DUP
Example
_format()
_format(Defined in: src/primitives/Opcode/format.js:20 Format instruction to human-readable stringinstruction):string
Parameters
instruction
Instruction
Instruction to format
Returns
string
Human-readable string
Example
_getCategory()
_getCategory(Defined in: src/primitives/Opcode/getCategory.js:18 Get opcode categoryopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Category name
Example
_getDescription()
_getDescription(Defined in: src/primitives/Opcode/getDescription.js:140 Get human-readable description of an opcodeopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Description or generated description for PUSH/DUP/SWAP
Example
_getGasCost()
_getGasCost(Defined in: src/primitives/Opcode/getGasCost.js:16 Get static gas cost for an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Static gas cost or undefined if invalid
Example
_getName()
_getName(Defined in: src/primitives/Opcode/getName.js:16 Get mnemonic name of an opcode (alias for name)opcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
_getPushSize()
_getPushSize(Defined in: src/primitives/Opcode/getPushSize.js:18 Get PUSH data size in bytesopcode):number
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number
Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)
Example
_getStackEffect()
_getStackEffect(Defined in: src/primitives/Opcode/getStackEffect.js:19 Get stack effect for an opcodeopcode): {pop:number;push:number; } |undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
{pop: number; push: number; } | undefined
Stack items consumed and produced
Example
_getStackInput()
_getStackInput(Defined in: src/primitives/Opcode/getStackInput.js:16 Get number of stack items consumed by an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items consumed
Example
_getStackOutput()
_getStackOutput(Defined in: src/primitives/Opcode/getStackOutput.js:16 Get number of stack items produced by an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items produced
Example
_info()
_info(Defined in: src/primitives/Opcode/info.js:17 Get metadata for an opcodeopcode):Info|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
Info | undefined
Metadata with gas cost and stack requirements
Example
_isDup()
_isDup(Defined in: src/primitives/Opcode/isDup.js:16 Check if opcode is a DUP instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if DUP1-DUP16
Example
_isJump()
_isJump(Defined in: src/primitives/Opcode/isJump.js:17 Check if opcode is a jumpopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMP or JUMPI
Example
_isJumpDestination()
_isJumpDestination(Defined in: src/primitives/Opcode/isJumpDestination.js:16 Check if opcode is JUMPDESTopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMPDEST
Example
_isLog()
_isLog(Defined in: src/primitives/Opcode/isLog.js:16 Check if opcode is a LOG instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if LOG0-LOG4
Example
_isPush()
_isPush(Defined in: src/primitives/Opcode/isPush.js:16 Check if opcode is a PUSH instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if PUSH0-PUSH32
Example
_isSwap()
_isSwap(Defined in: src/primitives/Opcode/isSwap.js:16 Check if opcode is a SWAP instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if SWAP1-SWAP16
Example
_isTerminating()
_isTerminating(Defined in: src/primitives/Opcode/isTerminating.js:16 Check if opcode terminates executionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
_isTerminator()
_isTerminator(Defined in: src/primitives/Opcode/isTerminator.js:16 Check if opcode terminates execution (alias for isTerminating)opcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
_isValid()
_isValid(Defined in: src/primitives/Opcode/isValid.js:16 Check if opcode is validopcode):opcode is BrandedOpcode
Parameters
opcode
number
Byte value to check
Returns
opcode is BrandedOpcode
True if opcode is defined in the EVM
Example
_isValidJumpDest()
_isValidJumpDest(Defined in: src/primitives/Opcode/isValidJumpDest.js:18 Check if offset is a valid jump destinationbytecode,offset):boolean
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
offset
number
Byte offset to check
Returns
boolean
True if offset is a JUMPDEST and not inside immediate data
Example
_isValidOpcode()
_isValidOpcode(Defined in: src/primitives/Opcode/isValidOpcode.js:17 Check if value is a valid opcode (alias for isValid)value):boolean
Parameters
value
number
Value to check
Returns
boolean
True if valid opcode
Example
_jumpDests()
_jumpDests(Defined in: src/primitives/Opcode/jumpDests.js:17 Find all valid JUMPDEST locationsbytecode):Set<number>
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Set<number>
Set of valid jump destinations (byte offsets)
Example
_logTopics()
_logTopics(Defined in: src/primitives/Opcode/logTopics.js:17 Get number of topics for LOG instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of topics (0-4), or undefined if not a LOG
Example
_name()
_name(Defined in: src/primitives/Opcode/name.js:15 Get name of an opcodeopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
_parse()
_parse(Defined in: src/primitives/Opcode/parse.js:21 Parse bytecode into instructionsbytecode):Instruction[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Instruction[]
Array of parsed instructions
Example
_pushBytes()
_pushBytes(Defined in: src/primitives/Opcode/pushBytes.js:18 Get number of bytes pushed by PUSH instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of bytes (0-32), or undefined if not a PUSH
Example
_pushOpcode()
_pushOpcode(Defined in: src/primitives/Opcode/pushOpcode.js:19 Get PUSH opcode for given byte countbytes):BrandedOpcode
Parameters
bytes
number
Number of bytes (0-32)
Returns
BrandedOpcode
PUSH opcode for that size
Throws
If bytes is not 0-32Example
_swapPosition()
_swapPosition(Defined in: src/primitives/Opcode/swapPosition.js:17 Get position for SWAP instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a SWAP
Example
disassemble()
disassemble(Defined in: src/primitives/Opcode/disassemble.js:22 Disassemble bytecode to human-readable stringsbytecode):string[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
string[]
Array of formatted instruction strings
Example
dupPosition()
dupPosition(Defined in: src/primitives/Opcode/dupPosition.js:17 Get position for DUP instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a DUP
Example
format()
format(Defined in: src/primitives/Opcode/format.js:20 Format instruction to human-readable stringinstruction):string
Parameters
instruction
Instruction
Instruction to format
Returns
string
Human-readable string
Example
getCategory()
getCategory(Defined in: src/primitives/Opcode/getCategory.js:18 Get opcode categoryopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Category name
Example
getDescription()
getDescription(Defined in: src/primitives/Opcode/getDescription.js:140 Get human-readable description of an opcodeopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Description or generated description for PUSH/DUP/SWAP
Example
getGasCost()
getGasCost(Defined in: src/primitives/Opcode/getGasCost.js:16 Get static gas cost for an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Static gas cost or undefined if invalid
Example
getName()
getName(Defined in: src/primitives/Opcode/getName.js:16 Get mnemonic name of an opcode (alias for name)opcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
getPushSize()
getPushSize(Defined in: src/primitives/Opcode/getPushSize.js:18 Get PUSH data size in bytesopcode):number
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number
Push size (0 for PUSH0, 1-32 for PUSH1-PUSH32, 0 for non-PUSH)
Example
getStackEffect()
getStackEffect(Defined in: src/primitives/Opcode/getStackEffect.js:19 Get stack effect for an opcodeopcode): {pop:number;push:number; } |undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
{pop: number; push: number; } | undefined
Stack items consumed and produced
Example
getStackInput()
getStackInput(Defined in: src/primitives/Opcode/getStackInput.js:16 Get number of stack items consumed by an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items consumed
Example
getStackOutput()
getStackOutput(Defined in: src/primitives/Opcode/getStackOutput.js:16 Get number of stack items produced by an opcodeopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of stack items produced
Example
info()
info(Defined in: src/primitives/Opcode/info.js:17 Get metadata for an opcodeopcode):Info|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
Info | undefined
Metadata with gas cost and stack requirements
Example
isDup()
isDup(Defined in: src/primitives/Opcode/isDup.js:16 Check if opcode is a DUP instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if DUP1-DUP16
Example
isJump()
isJump(Defined in: src/primitives/Opcode/isJump.js:17 Check if opcode is a jumpopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMP or JUMPI
Example
isJumpDestination()
isJumpDestination(Defined in: src/primitives/Opcode/isJumpDestination.js:16 Check if opcode is JUMPDESTopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if JUMPDEST
Example
isLog()
isLog(Defined in: src/primitives/Opcode/isLog.js:16 Check if opcode is a LOG instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if LOG0-LOG4
Example
isPush()
isPush(Defined in: src/primitives/Opcode/isPush.js:16 Check if opcode is a PUSH instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if PUSH0-PUSH32
Example
isSwap()
isSwap(Defined in: src/primitives/Opcode/isSwap.js:16 Check if opcode is a SWAP instructionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if SWAP1-SWAP16
Example
isTerminating()
isTerminating(Defined in: src/primitives/Opcode/isTerminating.js:16 Check if opcode terminates executionopcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
isTerminator()
isTerminator(Defined in: src/primitives/Opcode/isTerminator.js:16 Check if opcode terminates execution (alias for isTerminating)opcode):boolean
Parameters
opcode
BrandedOpcode
Opcode to check
Returns
boolean
True if STOP, RETURN, REVERT, INVALID, or SELFDESTRUCT
Example
isValid()
isValid(Defined in: src/primitives/Opcode/isValid.js:16 Check if opcode is validopcode):opcode is BrandedOpcode
Parameters
opcode
number
Byte value to check
Returns
opcode is BrandedOpcode
True if opcode is defined in the EVM
Example
isValidJumpDest()
isValidJumpDest(Defined in: src/primitives/Opcode/isValidJumpDest.js:18 Check if offset is a valid jump destinationbytecode,offset):boolean
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
offset
number
Byte offset to check
Returns
boolean
True if offset is a JUMPDEST and not inside immediate data
Example
isValidOpcode()
isValidOpcode(Defined in: src/primitives/Opcode/isValidOpcode.js:17 Check if value is a valid opcode (alias for isValid)value):boolean
Parameters
value
number
Value to check
Returns
boolean
True if valid opcode
Example
jumpDests()
jumpDests(Defined in: src/primitives/Opcode/jumpDests.js:17 Find all valid JUMPDEST locationsbytecode):Set<number>
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Set<number>
Set of valid jump destinations (byte offsets)
Example
logTopics()
logTopics(Defined in: src/primitives/Opcode/logTopics.js:17 Get number of topics for LOG instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of topics (0-4), or undefined if not a LOG
Example
name()
name(Defined in: src/primitives/Opcode/name.js:15 Get name of an opcodeopcode):string
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
string
Opcode name or “UNKNOWN” if invalid
Example
parse()
parse(Defined in: src/primitives/Opcode/parse.js:21 Parse bytecode into instructionsbytecode):Instruction[]
Parameters
bytecode
Uint8Array<ArrayBufferLike>
Raw bytecode bytes
Returns
Instruction[]
Array of parsed instructions
Example
pushBytes()
pushBytes(Defined in: src/primitives/Opcode/pushBytes.js:18 Get number of bytes pushed by PUSH instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Number of bytes (0-32), or undefined if not a PUSH
Example
pushOpcode()
pushOpcode(Defined in: src/primitives/Opcode/pushOpcode.js:19 Get PUSH opcode for given byte countbytes):BrandedOpcode
Parameters
bytes
number
Number of bytes (0-32)
Returns
BrandedOpcode
PUSH opcode for that size
Throws
If bytes is not 0-32Example
swapPosition()
swapPosition(Defined in: src/primitives/Opcode/swapPosition.js:17 Get position for SWAP instructionopcode):number|undefined
Parameters
opcode
BrandedOpcode
Opcode to query
Returns
number | undefined
Stack position (1-16), or undefined if not a SWAP

