# Functions
ActivateableEips returns the sorted slice of EIP names that can be activated.
CalcMemSize64 calculates the required memory size, and returns the size and whether the result overflowed uint64.
CopyJumpTable creates copy of the operations from the provided source JumpTable.
DefaultActivePrecompiles returns the set of precompiles enabled with the default configuration.
DefaultJumpTable defines the default jump table used by the EVM interpreter.
DefaultPrecompiles define the mapping of address and precompiles from the default configuration.
EnableEIP enables the given EIP on the config.
ExistsEipActivator return true if the given EIP name is associated with an activator function.
ExtendActivators allows to merge the go ethereum activators map with additional custom activators.
ExtendOperations returns an instance of the new operation and register it in the list of available ones.
GetActivatorsEipNames returns the name of EIPs registered in the activators map.
NewContract returns a new contract environment for the execution of EVM.
No description provided by the author
NewEVM returns a new EVM.
NewEVMInterpreter returns a new instance of the Interpreter.
NewEVMWithHooks returns a new EVM and takes a custom OpCodeHooks.
NewMemory returns a new memory model.
NewPrecompile returns a new instance of a precompiled contract environment for the execution of EVM.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
StringToOp finds the opcode whose name is stored in `str`.
ValidateEIPName checks if an EIP name is valid or not.
ValidatePrecompiles validates the precompile map against the active precompile slice.
# Constants
0x0 range - arithmetic ops.
0x0 range - arithmetic ops.
0x30 range - closure state.
0x10 range - comparison ops.
0x30 range - closure state.
0x40 range - block operations.
0x40 range - block operations.
0x10 range - comparison ops.
0xf0 range - closures.
0xf0 range - closures.
0x30 range - closure state.
0x30 range - closure state.
0x30 range - closure state.
0x30 range - closure state.
0x30 range - closure state.
0x40 range - block operations.
0x30 range - closure state.
0x30 range - closure state.
0x40 range - block operations.
0xf0 range - closures.
0xf0 range - closures.
0xf0 range - closures.
0x40 range - block operations.
0x0 range - arithmetic ops.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x80 range - dups.
0x10 range - comparison ops.
0x0 range - arithmetic ops.
0x30 range - closure state.
0x30 range - closure state.
0x30 range - closure state.
0x50 range - 'storage' and execution.
Gas costs.
Gas costs.
Gas costs.
0x40 range - block operations.
Gas costs.
0x30 range - closure state.
Gas costs.
Gas costs.
0x10 range - comparison ops.
0xf0 range - closures.
0x10 range - comparison ops.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x20 range - crypto.
0xa0 range - logging ops.
0xa0 range - logging ops.
0xa0 range - logging ops.
0xa0 range - logging ops.
0xa0 range - logging ops.
0x10 range - comparison ops.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x0 range - arithmetic ops.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x0 range - arithmetic ops.
0x0 range - arithmetic ops.
0x10 range - comparison ops.
0x40 range - block operations.
0x10 range - comparison ops.
0x30 range - closure state.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x50 range - 'storage' and execution.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
0x60 range - pushes.
Same as DIFFICULTY.
0xf0 range - closures.
0x30 range - closure state.
0x30 range - closure state.
0xf0 range - closures.
0x10 range - comparison ops.
0x0 range - arithmetic ops.
0x40 range - block operations.
0xf0 range - closures.
0x10 range - comparison ops.
0x10 range - comparison ops.
0x10 range - comparison ops.
0x0 range - arithmetic ops.
0x50 range - 'storage' and execution.
0x10 range - comparison ops.
0x0 range - arithmetic ops.
0x50 range - 'storage' and execution.
0xf0 range - closures.
0x0 range - arithmetic ops.
0x0 range - arithmetic ops.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x90 range - swaps.
0x40 range - block operations.
0x10 range - comparison ops.
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
No description provided by the author
No description provided by the author
List evm execution errors.
List evm execution errors.
List evm execution errors.
List evm execution errors.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
PrecompiledAddressesBerlin defines the default set of pre-compiled Ethereum contract addresses used in the Berlin release.
PrecompiledAddressesByzantium defines the default set of pre-compiled Ethereum contract addresses used in the Byzantium release.
PrecompiledAddressesHomestead defines the default set of pre-compiled Ethereum contract addresses used in the Homestead release.
PrecompiledAddressesIstanbul defines the default set of pre-compiled Ethereum contract addresses used in the Istanbul release.
PrecompiledContractsBerlin contains the default set of pre-compiled Ethereum contracts used in the Berlin release.
PrecompiledContractsBLS contains the set of pre-compiled Ethereum contracts specified in EIP-2537.
PrecompiledContractsByzantium contains the default set of pre-compiled Ethereum contracts used in the Byzantium release.
PrecompiledContractsHomestead contains the default set of pre-compiled Ethereum contracts used in the Frontier and Homestead releases.
PrecompiledContractsIstanbul contains the default set of pre-compiled Ethereum contracts used in the Istanbul release.
No description provided by the author
No description provided by the author
# Structs
BlockContext provides the EVM with auxiliary information.
Config are the configuration options for the Interpreter.
Contract represents an ethereum contract in the state database.
ErrInvalidOpCode wraps an evm error when an invalid opcode is encountered.
ErrStackOverflow wraps an evm error when the items on the stack exceeds the maximum allowance.
ErrStackUnderflow wraps an evm error when the items on the stack less than the minimal requirement.
EVM is the Ethereum Virtual Machine base object and provides the necessary tools to run a contract on the given state with the provided context.
EVMInterpreter represents an EVM interpreter.
Memory implements a simple memory model for the ethereum virtual machine.
No description provided by the author
OpCodeInfo contains information required to identify an EVM operation.
Operation is an utility struct that wraps the private type operation.
ReturnStack is an object for basic return stack operations.
ScopeContext contains the things that are per-call, such as stack and memory, but not transients like pc and gas.
Stack is an object for basic stack operations.
TxContext provides the EVM with information about a transaction.
# Interfaces
CallContext provides a basic interface for the EVM calling conventions.
ContractRef is a reference to the contract's backing object.
EVMLogger is used to collect execution traces from an EVM transaction execution.
Interpreter is used to run Ethereum based contracts and will utilize the passed environment to query external sources for state information.
OpCodeHooks is a set of hooks that can be used to intercept and modify the behavior of the EVM when executing certain opcodes.
PrecompiledContract is the basic interface for native Go contracts.
StateDB is an EVM database for full state querying.
# Type aliases
AccountRef implements ContractRef.
No description provided by the author
No description provided by the author
JumpTable contains the EVM opcodes supported at a given fork.
OpCode is an EVM opcode.
No description provided by the author