@tevm/voltaire / primitives/Bytecode
primitives/Bytecode
Interfaces
ABIEvent
Defined in: src/primitives/Bytecode/BytecodeType.ts:97 ABI event extracted from bytecodeProperties
hash
hash: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:99
type
type: "event"
Defined in: src/primitives/Bytecode/BytecodeType.ts:98
ABIFunction
Defined in: src/primitives/Bytecode/BytecodeType.ts:85 ABI function extracted from bytecodeProperties
inputs?
Defined in: src/primitives/Bytecode/BytecodeType.ts:90optionalinputs: [{name:"";type:"bytes"; }]
outputs?
Defined in: src/primitives/Bytecode/BytecodeType.ts:91optionaloutputs: [{name:"";type:"bytes"; }]
payable
payable: boolean
Defined in: src/primitives/Bytecode/BytecodeType.ts:89
selector
selector: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:87
stateMutability
stateMutability:Defined in: src/primitives/Bytecode/BytecodeType.ts:88"pure"|"view"|"nonpayable"|"payable"
type
type: "function"
Defined in: src/primitives/Bytecode/BytecodeType.ts:86
BasicBlock
Defined in: src/primitives/Bytecode/BytecodeType.ts:134 Basic block metadataProperties
endPc
endPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:140
Ending program counter (exclusive)
gasEstimate
gasEstimate: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:144
Total static gas cost
index
index: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:136
Block index (0-based)
instructionCount
instructionCount: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:142
Number of instructions in block
isReachable
isReachable: boolean
Defined in: src/primitives/Bytecode/BytecodeType.ts:156
Whether block is reachable from entry
maxStack
maxStack: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:148
Maximum stack depth reached
minStack
minStack: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:146
Minimum stack items required to enter
predecessors
predecessors: number[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:160
Predecessor block indices
stackEffect
stackEffect: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:150
Net stack effect (exit - entry)
startPc
startPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:138
Starting program counter
successors
successors: number[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:158
Successor block indices
target?
Defined in: src/primitives/Bytecode/BytecodeType.ts:154 Jump target PC (if terminator is JUMP/JUMPI)optionaltarget:number
terminator
terminator: TerminatorType
Defined in: src/primitives/Bytecode/BytecodeType.ts:152
Block terminator type
BlockAnalysisOptions
Defined in: src/primitives/Bytecode/BytecodeType.ts:166 Options for analyzeBlocks()Properties
buildCFG?
Defined in: src/primitives/Bytecode/BytecodeType.ts:170 Build control flow graph (predecessors/successors)optionalbuildCFG:boolean
computeReachability?
Defined in: src/primitives/Bytecode/BytecodeType.ts:168 Compute reachability from entry pointoptionalcomputeReachability:boolean
includeUnreachable?
Defined in: src/primitives/Bytecode/BytecodeType.ts:172 Include unreachable blocks in resultsoptionalincludeUnreachable:boolean
validate?
Defined in: src/primitives/Bytecode/BytecodeType.ts:174 Validate bytecode structureoptionalvalidate:boolean
BlockGas
Defined in: src/primitives/Bytecode/BytecodeType.ts:210 Block gas informationProperties
blockIndex
blockIndex: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:211
endPc
endPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:213
gas
gas: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:214
percentage
percentage: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:215
startPc
startPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:212
BlockStackInfo
Defined in: src/primitives/Bytecode/BytecodeType.ts:286 Block stack informationProperties
blockIndex
blockIndex: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:287
endPc
endPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:289
exitDepth
exitDepth: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:292
maxReached
maxReached: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:291
minRequired
minRequired: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:290
stackEffect
stackEffect: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:293
startPc
startPc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:288
ExecutionPath
Defined in: src/primitives/Bytecode/BytecodeType.ts:231 Execution path informationProperties
blocks
blocks: number[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:232
gas
gas: bigint
Defined in: src/primitives/Bytecode/BytecodeType.ts:233
instructions
instructions: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:234
ExpensiveInstruction
Defined in: src/primitives/Bytecode/BytecodeType.ts:221 Expensive instruction informationProperties
category
category: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:225
gas
gas: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:224
opcode
opcode: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:223
pc
pc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:222
GasAnalysis
Defined in: src/primitives/Bytecode/BytecodeType.ts:180 Gas analysis resultProperties
byBlock
byBlock: BlockGas[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:186
Gas breakdown by block
byInstruction
byInstruction: InstructionGas[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:184
Gas breakdown by instruction
expensive
expensive: ExpensiveInstruction[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:188
Expensive instructions (>1000 gas)
paths?
Defined in: src/primitives/Bytecode/BytecodeType.ts:190 Path analysis (if enabled)optionalpaths:object
average
average: bigint
cheapest
cheapest: ExecutionPath
mostExpensive
mostExpensive: ExecutionPath
total
total: bigint
Defined in: src/primitives/Bytecode/BytecodeType.ts:182
Total static gas cost
GasAnalysisOptions
Defined in: src/primitives/Bytecode/BytecodeType.ts:240 Options for analyzeGas()Properties
analyzePaths?
Defined in: src/primitives/Bytecode/BytecodeType.ts:242 Analyze different execution pathsoptionalanalyzePaths:boolean
context?
Defined in: src/primitives/Bytecode/BytecodeType.ts:248 Context for warm/cold gas calculationsoptionalcontext:object
warmAddresses?
optionalwarmAddresses:Set<string>
warmSlots?
optionalwarmSlots:Set<bigint>
includeDynamic?
Defined in: src/primitives/Bytecode/BytecodeType.ts:246 Include dynamic gas costsoptionalincludeDynamic:boolean
maxPaths?
Defined in: src/primitives/Bytecode/BytecodeType.ts:244 Maximum paths to exploreoptionalmaxPaths:number
InstructionGas
Defined in: src/primitives/Bytecode/BytecodeType.ts:200 Instruction gas informationProperties
cumulative
cumulative: bigint
Defined in: src/primitives/Bytecode/BytecodeType.ts:204
gas
gas: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:203
opcode
opcode: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:202
pc
pc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:201
PrettyPrintOptions
Defined in: src/primitives/Bytecode/BytecodeType.ts:315 Options for prettyPrint()Properties
colors?
Defined in: src/primitives/Bytecode/BytecodeType.ts:317 Enable ANSI color codesoptionalcolors:boolean
compact?
Defined in: src/primitives/Bytecode/BytecodeType.ts:335 Compact mode (less whitespace)optionalcompact:boolean
lineNumbers?
Defined in: src/primitives/Bytecode/BytecodeType.ts:329 Show line numbersoptionallineNumbers:boolean
maxWidth?
Defined in: src/primitives/Bytecode/BytecodeType.ts:333 Maximum output widthoptionalmaxWidth:number
showBlocks?
Defined in: src/primitives/Bytecode/BytecodeType.ts:323 Show block boundariesoptionalshowBlocks:boolean
showFusions?
Defined in: src/primitives/Bytecode/BytecodeType.ts:327 Show fusion patternsoptionalshowFusions:boolean
showGas?
Defined in: src/primitives/Bytecode/BytecodeType.ts:319 Show gas costsoptionalshowGas:boolean
showJumpArrows?
Defined in: src/primitives/Bytecode/BytecodeType.ts:325 Show jump arrowsoptionalshowJumpArrows:boolean
showStack?
Defined in: src/primitives/Bytecode/BytecodeType.ts:321 Show stack effectsoptionalshowStack:boolean
showSummary?
Defined in: src/primitives/Bytecode/BytecodeType.ts:331 Show summary footeroptionalshowSummary:boolean
ScanOptions
Defined in: src/primitives/Bytecode/BytecodeType.ts:105 Options for scan() iteratorProperties
detectFusions?
Defined in: src/primitives/Bytecode/BytecodeType.ts:111 Detect and yield fusion patternsoptionaldetectFusions:boolean
endPc?
Defined in: src/primitives/Bytecode/BytecodeType.ts:115 Stop iteration at specific PCoptionalendPc:number
startPc?
Defined in: src/primitives/Bytecode/BytecodeType.ts:113 Start iteration at specific PCoptionalstartPc:number
withGas?
Defined in: src/primitives/Bytecode/BytecodeType.ts:107 Include gas cost for each instructionoptionalwithGas:boolean
withStack?
Defined in: src/primitives/Bytecode/BytecodeType.ts:109 Include stack effect metadataoptionalwithStack:boolean
StackAnalysis
Defined in: src/primitives/Bytecode/BytecodeType.ts:257 Stack analysis resultProperties
byBlock
byBlock: BlockStackInfo[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:265
Stack info by block
issues
issues: StackIssue[]
Defined in: src/primitives/Bytecode/BytecodeType.ts:263
Stack issues found
maxDepth
maxDepth: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:261
Maximum stack depth reached
pathsAnalyzed
pathsAnalyzed: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:267
Number of paths analyzed
valid
valid: boolean
Defined in: src/primitives/Bytecode/BytecodeType.ts:259
Whether stack constraints are satisfied
StackAnalysisOptions
Defined in: src/primitives/Bytecode/BytecodeType.ts:299 Options for analyzeStack()Properties
analyzePaths?
Defined in: src/primitives/Bytecode/BytecodeType.ts:305 Analyze different execution pathsoptionalanalyzePaths:boolean
failFast?
Defined in: src/primitives/Bytecode/BytecodeType.ts:309 Stop at first erroroptionalfailFast:boolean
initialDepth?
Defined in: src/primitives/Bytecode/BytecodeType.ts:301 Initial stack depthoptionalinitialDepth:number
maxDepth?
Defined in: src/primitives/Bytecode/BytecodeType.ts:303 Maximum allowed stack depthoptionalmaxDepth:number
maxPaths?
Defined in: src/primitives/Bytecode/BytecodeType.ts:307 Maximum paths to exploreoptionalmaxPaths:number
StackIssue
Defined in: src/primitives/Bytecode/BytecodeType.ts:273 Stack issue informationProperties
actual
actual: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:278
blockIndex
blockIndex: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:276
expected
expected: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:277
message
message: string
Defined in: src/primitives/Bytecode/BytecodeType.ts:279
opcode?
Defined in: src/primitives/Bytecode/BytecodeType.ts:280optionalopcode:string
pc
pc: number
Defined in: src/primitives/Bytecode/BytecodeType.ts:275
type
type:Defined in: src/primitives/Bytecode/BytecodeType.ts:274"underflow"|"overflow"|"unreachable"|"inconsistent"
Type Aliases
ABIItem
ABIItem =Defined in: src/primitives/Bytecode/BytecodeType.ts:80 ABI item (function or event)ABIFunction|ABIEvent
Analysis
Analysis = object
Defined in: src/primitives/Bytecode/BytecodeType.ts:42
Bytecode analysis result
Properties
instructions
Defined in: src/primitives/Bytecode/BytecodeType.ts:46 All instructionsreadonlyinstructions: readonlyInstruction[]
jumpDestinations
Defined in: src/primitives/Bytecode/BytecodeType.ts:44 Valid JUMPDEST positionsreadonlyjumpDestinations:ReadonlySet<number>
valid
Defined in: src/primitives/Bytecode/BytecodeType.ts:48 Whether bytecode is validreadonlyvalid:boolean
BrandedAbi
BrandedAbi =Defined in: src/primitives/Bytecode/BytecodeType.ts:75 Branded ABI typeReadonlyArray<ABIItem> &object
Type Declaration
[brand]
readonly[brand]:"Abi"
BrandedBytecodeHex
BrandedBytecodeHex =Defined in: src/primitives/Bytecode/BytecodeType.ts:70 Branded hex string for bytecodestring&object
Type Declaration
[brand]
readonly[brand]:"BytecodeHex"
Instruction
Instruction = object
Defined in: src/primitives/Bytecode/BytecodeType.ts:30
Bytecode instruction
Properties
opcode
Defined in: src/primitives/Bytecode/BytecodeType.ts:32 Opcode valuereadonlyopcode:Opcode
position
Defined in: src/primitives/Bytecode/BytecodeType.ts:34 Position in bytecodereadonlyposition:number
pushData?
Defined in: src/primitives/Bytecode/BytecodeType.ts:36 Push data if PUSH instructionreadonlyoptionalpushData:Uint8Array
JumpDest
JumpDest = object
Defined in: src/primitives/Bytecode/BytecodeType.ts:20
Jump destination information
Properties
position
Defined in: src/primitives/Bytecode/BytecodeType.ts:22 Position in bytecodereadonlyposition:number
valid
Defined in: src/primitives/Bytecode/BytecodeType.ts:24 Whether this is a valid jump destinationreadonlyvalid:boolean
Opcode
Opcode = number
Defined in: src/primitives/Bytecode/BytecodeType.ts:15
EVM opcode (single byte instruction)
OpcodeMetadata
OpcodeMetadata = object
Defined in: src/primitives/Bytecode/BytecodeType.ts:54
Opcode metadata
Properties
gas
Defined in: src/primitives/Bytecode/BytecodeType.ts:60 Gas cost (base)readonlygas:number
inputs
Defined in: src/primitives/Bytecode/BytecodeType.ts:62 Stack items removedreadonlyinputs:number
name
Defined in: src/primitives/Bytecode/BytecodeType.ts:58 Mnemonic namereadonlyname:string
opcode
Defined in: src/primitives/Bytecode/BytecodeType.ts:56 Opcode valuereadonlyopcode:Opcode
outputs
Defined in: src/primitives/Bytecode/BytecodeType.ts:64 Stack items addedreadonlyoutputs:number
TerminatorType
TerminatorType =Defined in: src/primitives/Bytecode/BytecodeType.ts:121 Block terminator type"stop"|"return"|"revert"|"invalid"|"selfdestruct"|"jump"|"jumpi"|"fallthrough"
Variables
analyze()
Defined in: src/primitives/Bytecode/index.ts:56constanalyze: (code) =>Analysis=_analyze
Parameters
code
BrandedBytecode
Returns
Analysis
analyzeBlocks()
Defined in: src/primitives/Bytecode/index.ts:57constanalyzeBlocks: (bytecode,options?) =>BasicBlock[] =_analyzeBlocks
Parameters
bytecode
BrandedBytecode
options?
BlockAnalysisOptions
Returns
BasicBlock[]
analyzeGas()
Defined in: src/primitives/Bytecode/index.ts:61constanalyzeGas: (bytecode,options?) =>GasAnalysis=_analyzeGas
Parameters
bytecode
BrandedBytecode
options?
GasAnalysisOptions
Returns
GasAnalysis
analyzeJumpDestinations()
Defined in: src/primitives/Bytecode/index.ts:65constanalyzeJumpDestinations: (code) =>ReadonlySet<number> =_analyzeJumpDestinations
Parameters
code
BrandedBytecode
Returns
ReadonlySet<number>
analyzeStack()
Defined in: src/primitives/Bytecode/index.ts:67constanalyzeStack: (bytecode,options?) =>StackAnalysis=_analyzeStack
Parameters
bytecode
BrandedBytecode
options?
StackAnalysisOptions
Returns
StackAnalysis
BrandedBytecode
Defined in: src/primitives/Bytecode/index.ts:152constBrandedBytecode:object
Type Declaration
_getNextPc()
_getNextPc: (Get next program counter after executing instruction at currentPcbytecode,currentPc) =>number|undefined
Parameters
bytecode
BrandedBytecode
currentPc
number
Current program counter
Returns
number | undefined
Next PC, or undefined if at/beyond end
Example
analyze()
analyze: (code) =>Analysis
Parameters
code
BrandedBytecode
Returns
Analysis
analyzeBlocks()
analyzeBlocks: (bytecode,options?) =>BasicBlock[]
Parameters
bytecode
BrandedBytecode
options?
BlockAnalysisOptions
Returns
BasicBlock[]
analyzeGas()
analyzeGas: (bytecode,options?) =>GasAnalysis
Parameters
bytecode
BrandedBytecode
options?
GasAnalysisOptions
Returns
GasAnalysis
analyzeJumpDestinations()
analyzeJumpDestinations: (code) =>ReadonlySet<number>
Parameters
code
BrandedBytecode
Returns
ReadonlySet<number>
analyzeStack()
analyzeStack: (bytecode,options?) =>StackAnalysis
Parameters
bytecode
BrandedBytecode
options?
StackAnalysisOptions
Returns
StackAnalysis
detectFusions()
detectFusions: (code) =>unknown
Parameters
code
BrandedBytecode
Returns
unknown
equals()
equals: (a,b) =>boolean
Parameters
a
BrandedBytecode
b
BrandedBytecode
Returns
boolean
extractRuntime()
extractRuntime: (code,offset) =>BrandedBytecode
Parameters
code
BrandedBytecode
offset
number
Returns
BrandedBytecode
formatInstruction()
formatInstruction: (inst) =>string
Parameters
inst
Instruction
Returns
string
formatInstructions()
formatInstructions: (code) =>string[]
Parameters
code
BrandedBytecode
Returns
string[]
from()
from: (value) =>BrandedBytecode
Parameters
value
string | Uint8Array<ArrayBufferLike>
Returns
BrandedBytecode
fromHex()
fromHex: (hex) =>BrandedBytecode
Parameters
hex
string
Returns
BrandedBytecode
getBlock()
getBlock: (code,pc) =>BasicBlock|undefined
Parameters
code
BrandedBytecode
pc
number
Returns
BasicBlock | undefined
getPushSize()
getPushSize: (opcode) =>number
Parameters
opcode
number
Returns
number
hash()
hash: (code) =>any
Parameters
code
BrandedBytecode
Returns
any
hasMetadata()
hasMetadata: (code) =>boolean
Parameters
code
BrandedBytecode
Returns
boolean
isPush()
isPush: (opcode) =>boolean
Parameters
opcode
number
Returns
boolean
isTerminator()
isTerminator: (opcode) =>boolean
Parameters
opcode
number
Returns
boolean
isValidJumpDest()
isValidJumpDest: (code,offset) =>boolean
Parameters
code
BrandedBytecode
offset
number
Returns
boolean
parseInstructions()
parseInstructions: (code) =>Instruction[]
Parameters
code
BrandedBytecode
Returns
Instruction[]
prettyPrint()
prettyPrint: (bytecode,options?) =>string
Parameters
bytecode
BrandedBytecode
options?
PrettyPrintOptions
Returns
string
scan()
scan: (bytecode,options?) =>Generator<{gas?:number;opcode:number;pc:number;size:number;stackEffect?: {pop:number;push:number; };type:"push"|"regular";value?:bigint; }>
Parameters
bytecode
BrandedBytecode
options?
ScanOptions
Returns
Generator<{ gas?: number; opcode: number; pc: number; size: number; stackEffect?: { pop: number; push: number; }; type: "push" | "regular"; value?: bigint; }>
size()
size: (code) =>number
Parameters
code
BrandedBytecode
Returns
number
stripMetadata()
stripMetadata: (code) =>BrandedBytecode
Parameters
code
BrandedBytecode
Returns
BrandedBytecode
toAbi()
toAbi: (bytecode) =>BrandedAbi
Parameters
bytecode
BrandedBytecode
Returns
BrandedAbi
toHex()
toHex: (code,prefix?) =>string
Parameters
code
BrandedBytecode
prefix?
boolean
Returns
string
validate()
validate: (code) =>boolean
Parameters
code
BrandedBytecode
Returns
boolean
detectFusions()
Defined in: src/primitives/Bytecode/index.ts:71constdetectFusions: (code) =>unknown=_detectFusions
Parameters
code
BrandedBytecode
Returns
unknown
equals()
Defined in: src/primitives/Bytecode/index.ts:72constequals: (a,b) =>boolean=_equals
Parameters
a
BrandedBytecode
b
BrandedBytecode
Returns
boolean
extractRuntime()
Defined in: src/primitives/Bytecode/index.ts:73constextractRuntime: (code,offset) =>BrandedBytecode=_extractRuntime
Parameters
code
BrandedBytecode
offset
number
Returns
BrandedBytecode
formatInstruction()
Defined in: src/primitives/Bytecode/index.ts:77constformatInstruction: (inst) =>string=_formatInstruction
Parameters
inst
Instruction
Returns
string
formatInstructions()
Defined in: src/primitives/Bytecode/index.ts:78constformatInstructions: (code) =>string[] =_formatInstructions
Parameters
code
BrandedBytecode
Returns
string[]
from()
Defined in: src/primitives/Bytecode/index.ts:80constfrom: (value) =>BrandedBytecode=_from
Parameters
value
string | Uint8Array
Returns
BrandedBytecode
fromHex()
Defined in: src/primitives/Bytecode/index.ts:81constfromHex: (hex) =>BrandedBytecode=_fromHex
Parameters
hex
string
Returns
BrandedBytecode
getBlock()
Defined in: src/primitives/Bytecode/index.ts:82constgetBlock: (code,pc) =>BasicBlock|undefined=_getBlock
Parameters
code
BrandedBytecode
pc
number
Returns
BasicBlock | undefined
getPushSize()
Defined in: src/primitives/Bytecode/index.ts:88constgetPushSize: (opcode) =>number=_getPushSize
Parameters
opcode
number
Returns
number
hash()
Defined in: src/primitives/Bytecode/index.ts:53consthash: (code) =>any
Parameters
code
BrandedBytecode
Returns
any
hasMetadata()
Defined in: src/primitives/Bytecode/index.ts:89consthasMetadata: (code) =>boolean=_hasMetadata
Parameters
code
BrandedBytecode
Returns
boolean
isPush()
Defined in: src/primitives/Bytecode/index.ts:90constisPush: (opcode) =>boolean=_isPush
Parameters
opcode
number
Returns
boolean
isTerminator()
Defined in: src/primitives/Bytecode/index.ts:91constisTerminator: (opcode) =>boolean=_isTerminator
Parameters
opcode
number
Returns
boolean
isValidJumpDest()
Defined in: src/primitives/Bytecode/index.ts:92constisValidJumpDest: (code,offset) =>boolean=_isValidJumpDest
Parameters
code
BrandedBytecode
offset
number
Returns
boolean
parseInstructions()
Defined in: src/primitives/Bytecode/index.ts:94constparseInstructions: (code) =>Instruction[] =_parseInstructions
Parameters
code
BrandedBytecode
Returns
Instruction[]
prettyPrint()
Defined in: src/primitives/Bytecode/index.ts:96constprettyPrint: (bytecode,options?) =>string=_prettyPrint
Parameters
bytecode
BrandedBytecode
options?
PrettyPrintOptions
Returns
string
scan()
Defined in: src/primitives/Bytecode/index.ts:100constscan: (bytecode,options?) =>Generator<{gas?:number;opcode:number;pc:number;size:number;stackEffect?: {pop:number;push:number; };type:"push"|"regular";value?:bigint; }> =_scan
Parameters
bytecode
BrandedBytecode
options?
ScanOptions
Returns
Generator<{ gas?: number; opcode: number; pc: number; size: number; stackEffect?: { pop: number; push: number; }; type: "push" | "regular"; value?: bigint; }>
size()
Defined in: src/primitives/Bytecode/index.ts:112constsize: (code) =>number=_size
Parameters
code
BrandedBytecode
Returns
number
stripMetadata()
Defined in: src/primitives/Bytecode/index.ts:113conststripMetadata: (code) =>BrandedBytecode=_stripMetadata
Parameters
code
BrandedBytecode
Returns
BrandedBytecode
toAbi()
Defined in: src/primitives/Bytecode/index.ts:116consttoAbi: (bytecode) =>BrandedAbi=_toAbi
Parameters
bytecode
BrandedBytecode
Returns
BrandedAbi
toHex()
Defined in: src/primitives/Bytecode/index.ts:115consttoHex: (code,prefix?) =>string=_toHex
Parameters
code
BrandedBytecode
prefix?
boolean
Returns
string
validate()
Defined in: src/primitives/Bytecode/index.ts:117constvalidate: (code) =>boolean=_validate
Parameters
code
BrandedBytecode
Returns
boolean
Functions
_getNextPc()
_getNextPc(Defined in: src/primitives/Bytecode/getNextPc.js:20 Get next program counter after executing instruction at currentPcbytecode,currentPc):number|undefined
Parameters
bytecode
BrandedBytecode
currentPc
number
Current program counter
Returns
number | undefined
Next PC, or undefined if at/beyond end
Example
Bytecode()
Bytecode(Defined in: src/primitives/Bytecode/index.ts:195 Create a Bytecode instance from various input types Primary constructor - use this for Class API:value):BrandedBytecode
Parameters
value
Bytecode inputstring | Uint8Array<ArrayBufferLike>
Returns
BrandedBytecode
Bytecode instance
Hash()
Hash(Defined in: src/primitives/Bytecode/hash.js:7 Factory: Compute bytecode hash (keccak256)deps): (code) =>any
Parameters
deps
Crypto dependencieskeccak256
(data) => Uint8Array
Keccak256 hash function
Returns
Function that computes bytecode hash(code):any
Parameters
code
BrandedBytecode
Returns
any
