Versions in this module Expand all Collapse all v1 v1.11.8 Jul 20, 2021 v1.11.7 Jul 20, 2021 v1.11.6 Jul 20, 2021 v1.11.5 Jul 19, 2021 v1.11.4 Jul 9, 2021 v1.11.3 Jul 3, 2021 v1.11.2 Jul 3, 2021 v1.11.1 Jul 3, 2021 v1.10.10 Jul 3, 2021 v1.10.9 Jul 2, 2021 v1.10.8 Jul 2, 2021 v1.10.7 Jul 2, 2021 v1.10.6 Jul 2, 2021 Changes in this version + const GasExtStep + const GasFastStep + const GasFastestStep + const GasMidStep + const GasQuickStep + const GasSlowStep + 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 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 NewMarkdownLogger(cfg *LogConfig, writer io.Writer) *mdLogger + func RunPrecompiledContract(p PrecompiledContract, input []byte, suppliedGas uint64) (ret []byte, remainingGas uint64, err error) + func ValidEip(eipNum int) bool + func WriteLogs(writer io.Writer, logs []*types.Log) + func WriteTrace(writer io.Writer, logs []StructLog) + type AccessListTracer struct + func NewAccessListTracer(acl types.AccessList, from, to common.Address, precompiles []common.Address) *AccessListTracer + func (*AccessListTracer) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) + func (*AccessListTracer) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + func (a *AccessListTracer) AccessList() types.AccessList + func (a *AccessListTracer) CaptureStart(env *EVM, from common.Address, to common.Address, create bool, input []byte, ...) + func (a *AccessListTracer) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + func (a *AccessListTracer) Equal(other *AccessListTracer) 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 + 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 + EVMInterpreter string + EWASMInterpreter string + EnablePreimageRecording bool + ExtraEips []int + JumpTable [256]*operation + NoBaseFee bool + NoRecursion bool + Tracer Tracer + 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) GetByte(n uint64) byte + 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() Interpreter + 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) CanRun(code []byte) bool + func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) + 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 Interpreter interface + CanRun func([]byte) bool + Run func(contract *Contract, input []byte, static bool) ([]byte, error) + type JSONLogger struct + func NewJSONLogger(cfg *LogConfig, writer io.Writer) *JSONLogger + func (l *JSONLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) + func (l *JSONLogger) CaptureFault(*EVM, uint64, OpCode, uint64, uint64, *ScopeContext, int, error) + func (l *JSONLogger) CaptureStart(env *EVM, from, to common.Address, create bool, input []byte, gas uint64, ...) + func (l *JSONLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + type JumpTable [256]*operation + type LogConfig struct + Debug bool + DisableMemory bool + DisableReturnData bool + DisableStack bool + DisableStorage bool + Limit int + Overrides *params.ChainConfig + 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 DUP + 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 EQ + const EXP + const EXTCODECOPY + const EXTCODEHASH + const EXTCODESIZE + const GAS + const GASLIMIT + const GASPRICE + const GT + const ISZERO + const JUMP + const JUMPDEST + const JUMPI + 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 PUSH + 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 RETURN + const RETURNDATACOPY + const RETURNDATASIZE + const REVERT + const SAR + const SDIV + const SELFBALANCE + const SELFDESTRUCT + const SGT + const SHA3 + const SHL + const SHR + const SIGNEXTEND + const SLOAD + const SLT + const SMOD + const SSTORE + const STATICCALL + const STOP + const SUB + const SWAP + 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 + const TIMESTAMP + const XOR + func StringToOp(str string) OpCode + func (op OpCode) IsPush() bool + func (op OpCode) IsStaticJump() 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 Storage map[common.Hash]common.Hash + func (s Storage) Copy() Storage + type StructLog struct + Depth int + Err error + Gas uint64 + GasCost uint64 + Memory []byte + MemorySize int + Op OpCode + Pc uint64 + RefundCounter uint64 + ReturnData []byte + Stack []uint256.Int + Storage map[common.Hash]common.Hash + func (s *StructLog) ErrorString() string + func (s *StructLog) OpName() string + func (s *StructLog) UnmarshalJSON(input []byte) error + func (s StructLog) MarshalJSON() ([]byte, error) + type StructLogger struct + func NewStructLogger(cfg *LogConfig) *StructLogger + func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) + func (l *StructLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + func (l *StructLogger) CaptureStart(env *EVM, from common.Address, to common.Address, create bool, input []byte, ...) + func (l *StructLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + func (l *StructLogger) Error() error + func (l *StructLogger) Output() []byte + func (l *StructLogger) Reset() + func (l *StructLogger) StructLogs() []StructLog + type Tracer interface + CaptureEnd func(output []byte, gasUsed uint64, t time.Duration, err error) + CaptureFault func(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + CaptureStart func(env *EVM, from common.Address, to common.Address, create bool, input []byte, ...) + CaptureState func(env *EVM, pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, ...) + type TransferFunc func(StateDB, common.Address, common.Address, *big.Int) + type TxContext struct + GasPrice *big.Int + Origin common.Address