Skip to content

Evm

A wrapper around the EVM to expose some protected functionality of the EVMStateManger Ideally we find a way to remove this complexity and replace with a normal action

Extends

  • EVM

Constructors

new Evm()

protected new Evm(opts, bn128): Evm

Creates new EVM object

Parameters

opts: EVMOpts

The EVM options

bn128: bn128

Initialized bn128 WASM object for precompile usage (internal)

Returns

Evm

Inherited from

EVM.constructor

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:77

Properties

_block?

protected optional _block: Block

Inherited from

EVM._block

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:27


_customOpcodes?

protected optional readonly _customOpcodes: CustomOpcode[]

Inherited from

EVM._customOpcodes

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:37


_customPrecompiles?

protected optional readonly _customPrecompiles: CustomPrecompile[]

Inherited from

EVM._customPrecompiles

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:38


_dynamicGasHandlers

protected _dynamicGasHandlers: Map<number, AsyncDynamicGasHandler | SyncDynamicGasHandler>

Inherited from

EVM._dynamicGasHandlers

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:40


_emit()

protected readonly _emit: (topic, data) => Promise<void>

Parameters

topic: string

data: any

Returns

Promise<void>

Inherited from

EVM._emit

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:56


_handlers

protected _handlers: Map<number, OpHandler>

Inherited from

EVM._handlers

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:39


_opcodeMap

protected _opcodeMap: OpcodeMap

Inherited from

EVM._opcodeMap

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:41


_opcodes

protected _opcodes: OpcodeList

Inherited from

EVM._opcodes

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:34


_optsCached

protected readonly _optsCached: EVMOpts

Inherited from

EVM._optsCached

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:43


_precompiles

protected _precompiles: Map<string, PrecompileFunc>

Inherited from

EVM._precompiles

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:42


_tx?

protected optional _tx: object

gasPrice

gasPrice: bigint

origin

origin: EthjsAddress

Inherited from

EVM._tx

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:23


allowUnlimitedContractSize

readonly allowUnlimitedContractSize: boolean

Inherited from

EVM.allowUnlimitedContractSize

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:35


allowUnlimitedInitCodeSize

readonly allowUnlimitedInitCodeSize: boolean

Inherited from

EVM.allowUnlimitedInitCodeSize

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:36


blockchain

blockchain: Blockchain

Inherited from

EVM.blockchain

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:31


common

readonly common: Common

Inherited from

EVM.common

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:28


events

readonly events: AsyncEventEmitter<EVMEvents>

Inherited from

EVM.events

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:29


journal

journal: Journal

Inherited from

EVM.journal

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:32


performanceLogger

protected performanceLogger: EVMPerformanceLogger

Inherited from

EVM.performanceLogger

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:44


stateManager

stateManager: StateManager

Overrides

EVM.stateManager

Source

packages/evm/src/Evm.ts:12


transientStorage

readonly transientStorage: TransientStorage

Inherited from

EVM.transientStorage

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:33


create()

static create: (options?) => Promise<Evm>

Parameters

options?: EVMOpts

Returns

Promise<Evm>

Overrides

EVM.create

Source

packages/evm/src/Evm.ts:11


supportedHardforks

protected static supportedHardforks: Hardfork[]

Inherited from

EVM.supportedHardforks

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:22

Accessors

opcodes

get opcodes(): OpcodeList

Returns

OpcodeList

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:46


precompiles

get precompiles(): Map<string, PrecompileFunc>

Returns

Map<string, PrecompileFunc>

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:45

Methods

_addToBalance()

protected _addToBalance(toAccount, message): Promise<void>

Parameters

toAccount: EthjsAccount

message: MessageWithTo

Returns

Promise<void>

Inherited from

EVM._addToBalance

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:112


_executeCall()

protected _executeCall(message): Promise<EvmResult>

Parameters

message: MessageWithTo

Returns

Promise<EvmResult>

Inherited from

EVM._executeCall

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:83


_executeCreate()

protected _executeCreate(message): Promise<EvmResult>

Parameters

message: EthjsMessage

Returns

Promise<EvmResult>

Inherited from

EVM._executeCreate

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:84


_generateAddress()

protected _generateAddress(message): Promise<EthjsAddress>

Parameters

message: EthjsMessage

Returns

Promise<EthjsAddress>

Inherited from

EVM._generateAddress

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:110


_loadCode()

protected _loadCode(message): Promise<void>

Parameters

message: EthjsMessage

Returns

Promise<void>

Inherited from

EVM._loadCode

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:109


_reduceSenderBalance()

protected _reduceSenderBalance(account, message): Promise<void>

Parameters

account: EthjsAccount

message: EthjsMessage

Returns

Promise<void>

Inherited from

EVM._reduceSenderBalance

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:111


clearPerformanceLogs()

clearPerformanceLogs(): void

Returns

void

Inherited from

EVM.clearPerformanceLogs

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:131


getActiveOpcodes()

getActiveOpcodes(): OpcodeList

Returns a list with the currently activated opcodes available for EVM execution

Returns

OpcodeList

Inherited from

EVM.getActiveOpcodes

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:82


getPerformanceLogs()

getPerformanceLogs(): object

Returns

object

opcodes

opcodes: EVMPerformanceLogOutput[]

precompiles

precompiles: EVMPerformanceLogOutput[]

Inherited from

EVM.getPerformanceLogs

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:127


getPrecompile()

getPrecompile(address): undefined | PrecompileFunc

Returns code for precompile at the given address, or undefined if no such precompile exists.

Parameters

address: EthjsAddress

Returns

undefined | PrecompileFunc

Inherited from

EVM.getPrecompile

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:104


runCall()

runCall(opts): Promise<EvmResult>

Executes an EVM message, determining whether it’s a call or create based on the to address. It checkpoints the state and reverts changes if an exception happens during the message execution.

Parameters

opts: EvmRunCallOpts

Returns

Promise<EvmResult>

Inherited from

EVM.runCall

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:94


runCode()

runCode(opts): Promise<ExecResult>

Bound to the global VM and therefore shouldn’t be used directly from the evm class

Parameters

opts: EVMRunCodeOpts

Returns

Promise<ExecResult>

Inherited from

EVM.runCode

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:99


runInterpreter()

protected runInterpreter(message, opts?): Promise<ExecResult>

Starts the actual bytecode processing for a CALL or CREATE

Parameters

message: EthjsMessage

opts?: InterpreterOpts

Returns

Promise<ExecResult>

Inherited from

EVM.runInterpreter

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:88


runPrecompile()

protected runPrecompile(code, data, gasLimit): ExecResult | Promise<ExecResult>

Executes a precompiled contract with given data and gas limit.

Parameters

code: PrecompileFunc

data: Uint8Array

gasLimit: bigint

Returns

ExecResult | Promise<ExecResult>

Inherited from

EVM.runPrecompile

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:108


shallowCopy()

shallowCopy(): EVM

This method copies the EVM, current HF and EIP settings and returns a new EVM instance.

Note: this is only a shallow copy and both EVM instances will point to the same underlying state DB.

Returns

EVM

EVM

Inherited from

EVM.shallowCopy

Source

node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:126