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()
protectednew 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
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?
protectedoptional_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?
protectedoptionalreadonly_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?
protectedoptionalreadonly_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()
protectedreadonly_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
protectedreadonly_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?
protectedoptional_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
readonlyallowUnlimitedContractSize: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
readonlyallowUnlimitedInitCodeSize: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
readonlycommon: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
readonlyevents: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
protectedperformanceLogger: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
readonlytransientStorage: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()
staticcreate: (options?) =>Promise<Evm>
Parameters
• options?: EVMOpts
Returns
Promise<Evm>
Overrides
EVM.create
Source
packages/evm/src/Evm.ts:11
supportedHardforks
protectedstaticsupportedHardforks: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
getopcodes():OpcodeList
Returns
OpcodeList
Source
node_modules/.pnpm/@ethereumjs+evm@3.0.0/node_modules/@ethereumjs/evm/dist/esm/evm.d.ts:46
precompiles
getprecompiles():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()
protectedrunInterpreter(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()
protectedrunPrecompile(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