ethereumjs-monorepo

@ethereumjs/evm


@ethereumjs/evm / EVMInterface

Interface: EVMInterface

Defined in: types.ts:181

Public EVM surface used by @ethereumjs/vm!VM and stand-alone callers.

Properties

binaryTreeAccessWitness?

optional binaryTreeAccessWitness?: BinaryTreeAccessWitness

Defined in: types.ts:204


blockLevelAccessList?

optional blockLevelAccessList?: BlockLevelAccessList

Defined in: types.ts:211

Accumulated block access list when EIP-7928 is active.

Remarks

Experimental (Amsterdam): may change on patch releases.


common

common: Common

Defined in: types.ts:182


createTxTargetAlive?

optional createTxTargetAlive?: boolean

Defined in: types.ts:246

EIP-8037: whether the target account of a top-level creation transaction was already alive (EIP-161 non-empty) before creation; runTx refunds the intrinsic new-account state gas when true or the creation failed. Optional for custom EVMInterface implementations.

Remarks

Experimental (Amsterdam): may change on patch releases.


eip2780PrepOog?

optional eip2780PrepOog?: boolean

Defined in: types.ts:237

EIP-2780 / EIP-8037: set when a top-frame access charge OOGs before opcodes. runTx reverts prepare-region 7702 delegations when this is true.

Remarks

Experimental (Amsterdam): may change on patch releases.


eip7928CallPostTargetOog?

optional eip7928CallPostTargetOog?: boolean

Defined in: types.ts:230

EIP-7928: set during CALL post-target OOG so runTx can drain the state-gas reservoir on exceptional halt. Optional for custom EVMInterface implementations.

Remarks

Experimental (Amsterdam): may change on patch releases.


events?

optional events?: EventEmitter<EVMEvent, any>

Defined in: types.ts:203


executionStateGasUsed

executionStateGasUsed: bigint

Defined in: types.ts:223

EIP-8037 per-tx cumulative state-gas used.

Remarks

Experimental (Amsterdam): may change on patch releases.


journal

journal: object

Defined in: types.ts:183

accessList?

optional accessList?: Map<string, Set<string>>

preimages?

optional preimages?: Map<`0x${string}`, Uint8Array<ArrayBufferLike>>

addAlwaysWarmAddress()

addAlwaysWarmAddress(address, addToAccessList?): void

Parameters
address

string

addToAccessList?

boolean

Returns

void

addAlwaysWarmSlot()

addAlwaysWarmSlot(address, slot, addToAccessList?): void

Parameters
address

string

slot

string

addToAccessList?

boolean

Returns

void

checkpoint()

checkpoint(): Promise<void>

Returns

Promise<void>

cleanJournal()

cleanJournal(): void

Returns

void

cleanup()

cleanup(): Promise<void>

Returns

Promise<void>

commit()

commit(): Promise<void>

Returns

Promise<void>

deleteAccount()

deleteAccount(address): Promise<void>

Parameters
address

Address

Returns

Promise<void>

putAccount()

putAccount(address, account): Promise<void>

Parameters
address

Address

account

Account

Returns

Promise<void>

revert()

revert(): Promise<void>

Returns

Promise<void>

startReportingAccessList()

startReportingAccessList(): void

Returns

void

startReportingPreimages()?

optional startReportingPreimages(): void

Returns

void


precompiles

precompiles: Map<string, PrecompileFunc>

Defined in: types.ts:199


stateGasReservoir

stateGasReservoir: bigint

Defined in: types.ts:217

EIP-8037 per-tx state-gas reservoir (set by runTx, read/written by opcodes).

Remarks

Experimental (Amsterdam): may change on patch releases.


stateManager

stateManager: StateManagerInterface

Defined in: types.ts:198


systemBinaryTreeAccessWitness?

optional systemBinaryTreeAccessWitness?: BinaryTreeAccessWitness

Defined in: types.ts:205

Methods

getPrecompile()?

optional getPrecompile(address): PrecompileFunc | undefined

Defined in: types.ts:200

Parameters

address

`0x${string}` | Address

Returns

PrecompileFunc | undefined


runCall()

runCall(opts): Promise<EVMResult>

Defined in: types.ts:201

Parameters

opts

EVMRunCallOpts

Returns

Promise<EVMResult>


runCode()

runCode(opts): Promise<ExecResult>

Defined in: types.ts:202

Parameters

opts

EVMRunCodeOpts

Returns

Promise<ExecResult>