Versions in this module Expand all Collapse all v1 v1.123.4 Mar 25, 2022 v1.31.1 Mar 25, 2022 v1.10.34 Mar 25, 2022 v1.5.99 Mar 25, 2022 v1.2.35 Mar 25, 2022 v1.2.4 Mar 25, 2022 Changes in this version + const DUP1 + const DUP10 + const DUP11 + const DUP12 + const DUP13 + const DUP14 + const DUP15 + const DUP16 + const DUP2 + const DUP3 + const DUP4 + const DUP5 + const DUP6 + const DUP7 + const DUP8 + const DUP9 + const GasExtStep + const GasFastStep + const GasFastestStep + const GasMidStep + const GasQuickStep + const GasSlowStep + const SWAP1 + const SWAP10 + const SWAP11 + const SWAP12 + const SWAP13 + const SWAP14 + const SWAP15 + const SWAP16 + const SWAP2 + const SWAP3 + const SWAP4 + const SWAP5 + const SWAP6 + const SWAP7 + const SWAP8 + const SWAP9 + var ErrCodeStoreOutOfGas = errors.New("contract creation code storage out of gas") + var ErrContractAddressCollision = errors.New("contract address collision") + var ErrDepth = errors.New("max call depth exceeded") + var ErrExecutionReverted = errors.New("execution reverted") + var ErrGasUintOverflow = errors.New("gas uint64 overflow") + var ErrInsufficientBalance = errors.New("insufficient balance for transfer") + var ErrInvalidCode = errors.New("invalid code: must not begin with 0xef") + var ErrInvalidJump = errors.New("invalid jump destination") + var ErrMaxCodeSizeExceeded = errors.New("max code size exceeded") + var ErrNonceUintOverflow = errors.New("nonce uint64 overflow") + var ErrOutOfGas = errors.New("out of gas") + var ErrReturnDataOutOfBounds = errors.New("return data out of bounds") + var ErrWriteProtection = errors.New("write protection") + var PrecompiledAddressesBerlin []common.Address + var PrecompiledAddressesByzantium []common.Address + var PrecompiledAddressesHomestead []common.Address + var PrecompiledAddressesIstanbul []common.Address + var PrecompiledContractsBLS = map[common.Address]PrecompiledContract + var PrecompiledContractsBerlin = map[common.Address]PrecompiledContract + var PrecompiledContractsByzantium = map[common.Address]PrecompiledContract + var PrecompiledContractsHomestead = map[common.Address]PrecompiledContract + var PrecompiledContractsIstanbul = map[common.Address]PrecompiledContract + func ActivateableEips() []string + func ActivePrecompiles(rules params.Rules) []common.Address + func EnableEIP(eipNum int, jt *JumpTable) error + func RunPrecompiledContract(p PrecompiledContract, input []byte, suppliedGas uint64) (ret []byte, remainingGas uint64, err error) + func ValidEip(eipNum int) bool + type AccountRef common.Address + func (ar AccountRef) Address() common.Address + type BlockContext struct + BaseFee *big.Int + BlockNumber *big.Int + CanTransfer CanTransferFunc + Coinbase common.Address + Difficulty *big.Int + GasLimit uint64 + GetHash GetHashFunc + Random *common.Hash + Time *big.Int + Transfer TransferFunc + type CallContext interface + Call func(env *EVM, me ContractRef, addr common.Address, data []byte, ...) ([]byte, error) + CallCode func(env *EVM, me ContractRef, addr common.Address, data []byte, ...) ([]byte, error) + Create func(env *EVM, me ContractRef, data []byte, gas, value *big.Int) ([]byte, common.Address, error) + DelegateCall func(env *EVM, me ContractRef, addr common.Address, data []byte, gas *big.Int) ([]byte, error) + type CanTransferFunc func(StateDB, common.Address, *big.Int) bool + type Config struct + Debug bool + EnablePreimageRecording bool + ExtraEips []int + JumpTable *JumpTable + NoBaseFee bool + Tracer EVMLogger + type Contract struct + CallerAddress common.Address + Code []byte + CodeAddr *common.Address + CodeHash common.Hash + Gas uint64 + Input []byte + func NewContract(caller ContractRef, object ContractRef, value *big.Int, gas uint64) *Contract + func (c *Contract) Address() common.Address + func (c *Contract) AsDelegate() *Contract + func (c *Contract) Caller() common.Address + func (c *Contract) GetOp(n uint64) OpCode + func (c *Contract) SetCallCode(addr *common.Address, hash common.Hash, code []byte) + func (c *Contract) SetCodeOptionalHash(addr *common.Address, codeAndHash *codeAndHash) + func (c *Contract) UseGas(gas uint64) (ok bool) + func (c *Contract) Value() *big.Int + type ContractRef interface + Address func() common.Address + type EVM struct + Config Config + Context BlockContext + StateDB StateDB + func NewEVM(blockCtx BlockContext, txCtx TxContext, statedb StateDB, ...) *EVM + func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas uint64, ...) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) CallCode(caller ContractRef, addr common.Address, input []byte, gas uint64, ...) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) Cancel() + func (evm *EVM) Cancelled() bool + func (evm *EVM) ChainConfig() *params.ChainConfig + func (evm *EVM) Create(caller ContractRef, code []byte, gas uint64, value *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) + func (evm *EVM) Create2(caller ContractRef, code []byte, gas uint64, endowment *big.Int, ...) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) + func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) Interpreter() *EVMInterpreter + func (evm *EVM) Reset(txCtx TxContext, statedb StateDB) + func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) + type EVMInterpreter struct + func NewEVMInterpreter(evm *EVM, cfg Config) *EVMInterpreter + func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) + type EVMLogger interface + CaptureEnd func(output []byte, gasUsed uint64, t time.Duration, err error) + CaptureEnter func(typ OpCode, from common.Address, to common.Address, input []byte, gas uint64, ...) + CaptureExit func(output []byte, gasUsed uint64, err error) + CaptureFault func(pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, depth int, ...) + CaptureStart func(env *EVM, from common.Address, to common.Address, create bool, input []byte, ...) + CaptureState func(pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, rData []byte, ...) + type ErrInvalidOpCode struct + func (e *ErrInvalidOpCode) Error() string + type ErrStackOverflow struct + func (e *ErrStackOverflow) Error() string + type ErrStackUnderflow struct + func (e *ErrStackUnderflow) Error() string + type GetHashFunc func(uint64) common.Hash + type JumpTable [256]*operation + type Memory struct + func NewMemory() *Memory + func (m *Memory) Data() []byte + func (m *Memory) GetCopy(offset, size int64) (cpy []byte) + func (m *Memory) GetPtr(offset, size int64) []byte + func (m *Memory) Len() int + func (m *Memory) Print() + func (m *Memory) Resize(size uint64) + func (m *Memory) Set(offset, size uint64, value []byte) + func (m *Memory) Set32(offset uint64, val *uint256.Int) + type OpCode byte + const ADD + const ADDMOD + const ADDRESS + const AND + const BALANCE + const BASEFEE + const BLOCKHASH + const BYTE + const CALL + const CALLCODE + const CALLDATACOPY + const CALLDATALOAD + const CALLDATASIZE + const CALLER + const CALLVALUE + const CHAINID + const CODECOPY + const CODESIZE + const COINBASE + const CREATE + const CREATE2 + const DELEGATECALL + const DIFFICULTY + const DIV + const EQ + const EXP + const EXTCODECOPY + const EXTCODEHASH + const EXTCODESIZE + const GAS + const GASLIMIT + const GASPRICE + const GT + const INVALID + const ISZERO + const JUMP + const JUMPDEST + const JUMPI + const KECCAK256 + const LOG0 + const LOG1 + const LOG2 + const LOG3 + const LOG4 + const LT + const MLOAD + const MOD + const MSIZE + const MSTORE + const MSTORE8 + const MUL + const MULMOD + const NOT + const NUMBER + const OR + const ORIGIN + const PC + const POP + const PUSH1 + const PUSH10 + const PUSH11 + const PUSH12 + const PUSH13 + const PUSH14 + const PUSH15 + const PUSH16 + const PUSH17 + const PUSH18 + const PUSH19 + const PUSH2 + const PUSH20 + const PUSH21 + const PUSH22 + const PUSH23 + const PUSH24 + const PUSH25 + const PUSH26 + const PUSH27 + const PUSH28 + const PUSH29 + const PUSH3 + const PUSH30 + const PUSH31 + const PUSH32 + const PUSH4 + const PUSH5 + const PUSH6 + const PUSH7 + const PUSH8 + const PUSH9 + const RANDOM + const RETURN + const RETURNDATACOPY + const RETURNDATASIZE + const REVERT + const SAR + const SDIV + const SELFBALANCE + const SELFDESTRUCT + const SGT + const SHL + const SHR + const SIGNEXTEND + const SLOAD + const SLT + const SMOD + const SSTORE + const STATICCALL + const STOP + const SUB + const TIMESTAMP + const XOR + func StringToOp(str string) OpCode + func (op OpCode) IsPush() bool + func (op OpCode) String() string + type PrecompiledContract interface + RequiredGas func(input []byte) uint64 + Run func(input []byte) ([]byte, error) + type ScopeContext struct + Contract *Contract + Memory *Memory + Stack *Stack + type Stack struct + func (st *Stack) Back(n int) *uint256.Int + func (st *Stack) Data() []uint256.Int + func (st *Stack) Print() + type StateDB interface + AddAddressToAccessList func(addr common.Address) + AddBalance func(common.Address, *big.Int) + AddLog func(*types.Log) + AddPreimage func(common.Hash, []byte) + AddRefund func(uint64) + AddSlotToAccessList func(addr common.Address, slot common.Hash) + AddressInAccessList func(addr common.Address) bool + CreateAccount func(common.Address) + Empty func(common.Address) bool + Exist func(common.Address) bool + ForEachStorage func(common.Address, func(common.Hash, common.Hash) bool) error + GetBalance func(common.Address) *big.Int + GetCode func(common.Address) []byte + GetCodeHash func(common.Address) common.Hash + GetCodeSize func(common.Address) int + GetCommittedState func(common.Address, common.Hash) common.Hash + GetNonce func(common.Address) uint64 + GetRefund func() uint64 + GetState func(common.Address, common.Hash) common.Hash + HasSuicided func(common.Address) bool + PrepareAccessList func(sender common.Address, dest *common.Address, precompiles []common.Address, ...) + RevertToSnapshot func(int) + SetCode func(common.Address, []byte) + SetNonce func(common.Address, uint64) + SetState func(common.Address, common.Hash, common.Hash) + SlotInAccessList func(addr common.Address, slot common.Hash) (addressOk bool, slotOk bool) + Snapshot func() int + SubBalance func(common.Address, *big.Int) + SubRefund func(uint64) + Suicide func(common.Address) bool + type TransferFunc func(StateDB, common.Address, common.Address, *big.Int) + type TxContext struct + GasPrice *big.Int + Origin common.Address