Documentation ¶
Overview ¶
Package tracer provides custom tracing capabilities to comply with EIP-4337 specifications for forbidden opcodes.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var (
// Loaded JS tracers for simulating various EntryPoint methods using debug_traceCall.
Loaded, _ = NewTracers()
)
Functions ¶
This section is empty.
Types ¶
type AccessInfo ¶
AccessInfo provides context on read and write counts by storage slots.
type AccessMap ¶ added in v0.2.0
type AccessMap = map[common.Address]AccessInfo
type BundlerCollectorReturn ¶
type BundlerCollectorReturn struct { CallsFromEntryPoint []CallFromEntryPointInfo `json:"callsFromEntryPoint"` Keccak []string `json:"keccak"` Calls []CallInfo `json:"calls"` Logs []LogInfo `json:"logs"` Debug []any `json:"debug"` }
BundlerCollectorReturn is the return value from performing an EVM trace with BundlerCollectorTracer.js.
type BundlerExecutionReturn ¶ added in v0.6.9
type BundlerExecutionReturn struct { Reverts []string `json:"reverts"` ValidationOOG bool `json:"validationOOG"` ExecutionOOG bool `json:"executionOOG"` ExecutionGasLimit float64 `json:"executionGasLimit"` UserOperationEvent *LogInfo `json:"userOperationEvent,omitempty"` Output string `json:"output"` Error string `json:"error"` }
BundlerExecutionReturn is the return value from performing an EVM trace with BundlerExecutionTracer.js.
type CallFromEntryPointInfo ¶ added in v0.6.33
type CallFromEntryPointInfo struct { TopLevelMethodSig hexutil.Bytes `json:"topLevelMethodSig"` TopLevelTargetAddress common.Address `json:"topLevelTargetAddress"` Opcodes Counts `json:"opcodes"` Access AccessMap `json:"access"` ContractSize ContractSizeMap `json:"contractSize"` ExtCodeAccessInfo ExtCodeAccessInfoMap `json:"extCodeAccessInfo"` OOG bool `json:"oog"` }
CallFromEntryPoint provides context on opcodes and storage access made via the EntryPoint to UserOperation entities.
type CallInfo ¶
type CallInfo struct { // Common Type string `json:"type"` // Method info From common.Address `json:"from"` To common.Address `json:"to"` Method string `json:"method"` Value string `json:"value"` Gas float64 `json:"gas"` // Exit info GasUsed float64 `json:"gasUsed"` Data any `json:"data"` }
CallInfo provides context on internal calls made during tracing.
type ContractSizeInfo ¶ added in v0.6.33
type ContractSizeInfo struct { ContractSize float64 `json:"contractSize"` Opcode string `json:"opcode"` }
ContractSizeInfo provides context on the code size and call type used to access upstream contracts.
type ContractSizeMap ¶ added in v0.6.33
type ContractSizeMap map[common.Address]ContractSizeInfo
type ExtCodeAccessInfoMap ¶ added in v0.6.33
ExtCodeAccessInfoMap provides context on potentially illegal use of EXTCODESIZE.
type Tracers ¶ added in v0.6.0
func NewTracers ¶ added in v0.6.0
NewBundlerTracers reads the *Tracer.js files and returns a collection of strings that can be passed to a debug RPC method as a custom tracer.