Versions in this module Expand all Collapse all v0 v0.16.3 Jan 26, 2022 Changes in this version type VMContext + func NewVMContext(evm *EVM, contract *Contract, config Config, db StateDB) *VMContext v0.16.2 Dec 1, 2021 v0.16.1 Nov 4, 2021 Changes in this version + type JSONLogger struct + func NewJSONLogger(cfg *LogConfig, writer io.Writer) *JSONLogger + func (l *JSONLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) error + func (l *JSONLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + func (l *JSONLogger) CaptureStart(from common.Address, to common.Address, create bool, input []byte, gas uint64, ...) error + func (l *JSONLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error v0.16.0 Jul 16, 2021 Changes in this version + const BLSPROOFLEN + const BLSPUBKEYLEN + const Block + const Br + const BrIf + const BrTable + const Call + const CallIndirect + const CheckDuplicateSign + const CurrentMemory + const CurrentValidatorKey + const Declare + const Drop + const Else + const End + const F32Abs + const F32Add + const F32Ceil + const F32Const + const F32ConvertSI32 + const F32ConvertSI64 + const F32ConvertUI32 + const F32ConvertUI64 + const F32Copysign + const F32DemoteF64 + const F32Div + const F32Eq + const F32Floor + const F32Ge + const F32Gt + const F32Le + const F32Load + const F32Lt + const F32Max + const F32Min + const F32Mul + const F32Ne + const F32Nearest + const F32Neg + const F32ReinterpretI32 + const F32Sqrt + const F32Store + const F32Sub + const F32Trunc + const F64Abs + const F64Add + const F64Ceil + const F64Const + const F64ConvertSI32 + const F64ConvertSI64 + const F64ConvertUI32 + const F64ConvertUI64 + const F64Copysign + const F64Div + const F64Eq + const F64Floor + const F64Ge + const F64Gt + const F64Le + const F64Load + const F64Lt + const F64Max + const F64Min + const F64Mul + const F64Ne + const F64Nearest + const F64Neg + const F64PromoteF32 + const F64ReinterpretI64 + const F64Sqrt + const F64Store + const F64Sub + const F64Trunc + const FuncNameDelegateReward + const FuncNameWithdrawDelegateReward + const GasExtStep + const GasFastStep + const GasFastestStep + const GasMidStep + const GasQuickStep + const GasSlowStep + const GetAccuVerifiersCount + const GetActiveVersion + const GetAvgPackTime + const GetGlobal + const GetGovernParamValue + const GetLocal + const GetPackageReward + const GetProposal + const GetResult + const GetStakingReward + const GrowMemory + const I32Add + const I32And + const I32Clz + const I32Const + const I32Ctz + const I32DivS + const I32DivU + const I32Eq + const I32Eqz + const I32GeS + const I32GeU + const I32GtS + const I32GtU + const I32LeS + const I32LeU + const I32Load + const I32Load16s + const I32Load16u + const I32Load8s + const I32Load8u + const I32LtS + const I32LtU + const I32Mul + const I32Ne + const I32Or + const I32Popcnt + const I32ReinterpretF32 + const I32RemS + const I32RemU + const I32Rotl + const I32Rotr + const I32Shl + const I32ShrS + const I32ShrU + const I32Store + const I32Store16 + const I32Store8 + const I32Sub + const I32TruncSF32 + const I32TruncSF64 + const I32TruncUF32 + const I32TruncUF64 + const I32WrapI64 + const I32Xor + const I64Add + const I64And + const I64Clz + const I64Const + const I64Ctz + const I64DivS + const I64DivU + const I64Eq + const I64Eqz + const I64ExtendSI32 + const I64ExtendUI32 + const I64GeS + const I64GeU + const I64GtS + const I64GtU + const I64LeS + const I64LeU + const I64Load + const I64Load16s + const I64Load16u + const I64Load32s + const I64Load32u + const I64Load8s + const I64Load8u + const I64LtS + const I64LtU + const I64Mul + const I64Ne + const I64Or + const I64Popcnt + const I64ReinterpretF64 + const I64RemS + const I64RemU + const I64Rotl + const I64Rotr + const I64Shl + const I64ShrS + const I64ShrU + const I64Store + const I64Store16 + const I64Store32 + const I64Store8 + const I64Sub + const I64TruncSF32 + const I64TruncSF64 + const I64TruncUF32 + const I64TruncUF64 + const I64Xor + const If + const InterpTypeLen + const ListGovernParam + const ListProposal + const Loop + const MigrateContractGas + const NextValidatorKey + const Nop + const QueryCandidateInfo + const QueryCandidateList + const QueryDelegateInfo + const QueryDelegateReward + const QueryRelateList + const QueryRestrictingInfo + const QueryValidatorList + const QueryVerifierList + const Return + const Select + const SetGlobal + const SetLocal + const SubmitCancel + const SubmitParam + const SubmitText + const SubmitVersion + const TeeLocal + const TxCreateRestrictingPlan + const TxCreateStaking + const TxDelegate + const TxEditorCandidate + const TxIncreaseStaking + const TxReportDuplicateSign + const TxWithdrawDelegateReward + const TxWithdrewCandidate + const TxWithdrewDelegation + const Unreachable + const Vote + const WasmTopicNum + var Delimiter = []byte("") + var ErrAbort = errors.New("vm exec abort") + 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 ErrExecBadContract = errors.New("exec bad contract") + var ErrExecutionReverted = errors.New("execution reverted") + var ErrGasUintOverflow = errors.New("gas uint64 overflow") + var ErrInsufficientBalance = errors.New("insufficient balance for transfer") + var ErrInvalidJump = errors.New("invalid jump destination") + var ErrInvalidRetsub = errors.New("invalid retsub") + var ErrInvalidSubroutineEntry = errors.New("invalid subroutine entry") + var ErrMaxCodeSizeExceeded = errors.New("max code size exceeded") + var ErrNoCompatibleInterpreter = errors.New("no compatible interpreter") + var ErrOutOfGas = errors.New("out of gas") + var ErrReturnDataOutOfBounds = errors.New("return data out of bounds") + var ErrReturnStackExceeded = errors.New("return stack limit reached") + var ErrUnderPrice = errors.New("gas price is lower than minimum") + var ErrWASMEventContentToLong = errors.New("WASM: event indexed content too long") + var ErrWASMEventCountToLarge = errors.New("WASM: event indexed count too large") + var ErrWASMMigrate = errors.New("WASM: failed to migrate contract") + var ErrWASMOldContractCodeNotExists = errors.New("WASM: old contract code is not exists") + var ErrWASMPanicOp = errors.New("WASM: transaction err op") + var ErrWASMRlpItemCountTooLarge = errors.New("WASM: itemCount too large for RLP") + var ErrWASMSha3DstToShort = errors.New("WASM: sha3 dst len too short") + var ErrWASMUndefinedPanic = errors.New("WASM: vm undefined err") + var ErrWASMWriteProtection = errors.New("WASM: write protection") + var ErrWriteProtection = errors.New("write protection") + var EvmInterpNew = BytesToInterpType([]byte{ ... }) + var EvmInterpOld = BytesToInterpType([]byte{ ... }) + var PlatONPrecompiledContracts = map[common.Address]PrecompiledContract + var PrecompiledContractsByzantium = map[common.Address]PrecompiledContract + var PrecompiledContractsHomestead = map[common.Address]PrecompiledContract + var WasmGasCostTable [255]uint64 + var WasmInstrString = map[byte]string + var WasmInterp = BytesToInterpType([]byte{ ... }) + func Address(proc *exec.Process, dst uint32) + func Balance(proc *exec.Process, dst uint32, balance uint32) uint32 + func BlockHash(proc *exec.Process, num uint64, dst uint32) + func BlockNumber(proc *exec.Process) uint64 + func CallContract(proc *exec.Process, ...) int32 + func CallValue(proc *exec.Process, dst uint32) uint32 + func Caller(proc *exec.Process, dst uint32) + func CallerNonce(proc *exec.Process) uint64 + func CanUseEVMInterp(b []byte) bool + func CanUseWASMInterp(b []byte) bool + func Coinbase(proc *exec.Process, dst uint32) + func ContractCode(proc *exec.Process, addrPtr uint32, code uint32, codeLen uint32) int32 + func ContractCodeLength(proc *exec.Process, addrPtr uint32) uint32 + func CreateContract(proc *exec.Process, newAddr, val, valLen, callCost, callCostLen uint32, ...) int32 + func Debug(proc *exec.Process, dst uint32, len uint32) + func DelegateCallContract(proc *exec.Process, addrPtr, params, paramsLen, callCost, callCostLen uint32) int32 + func DestroyContract(proc *exec.Process, addrPtr uint32) int32 + func Ecrecover(proc *exec.Process, hashPtr, sigPtr, sigLen, addrPtr uint32) int32 + func EmitEvent(proc *exec.Process, indexesPtr, indexesLen, args, argsLen uint32) + func Gas(proc *exec.Process) uint64 + func GasLimit(proc *exec.Process) uint64 + func GasPrice(proc *exec.Process, gasPrice uint32) uint32 + func GetCallOutput(proc *exec.Process, dst uint32) + func GetCallOutputLength(proc *exec.Process) uint32 + func GetInput(proc *exec.Process, dst uint32) + func GetInputLength(proc *exec.Process) uint32 + func GetState(proc *exec.Process, key uint32, keyLen uint32, val uint32, valLen uint32) int32 + func GetStateLength(proc *exec.Process, key uint32, keyLen uint32) uint32 + func IsBlank(i interface{}) bool + func IsEVMPrecompiledContract(addr common.Address) bool + func IsPlatONPrecompiledContract(addr common.Address) bool + func IsPrecompiledContract(addr common.Address) bool + func MigrateCloneContract(proc *exec.Process, ...) int32 + func MigrateContract(proc *exec.Process, ...) int32 + func MigrateInnerContract(proc *exec.Process, newAddr, val, valLen, callCost, callCostLen uint32, ...) int32 + func NewHostModule() *wasm.Module + func NewWasmEngineCreator(vm WasmInsType) (wasmEngineCreator, error) + func Origin(proc *exec.Process, dst uint32) + func Panic(proc *exec.Process) + func PlatonClone(proc *exec.Process, ...) int32 + func PlatonDeploy(proc *exec.Process, ...) int32 + func ReadWasmModule(Code []byte, verify bool) (*exec.CompiledModule, error) + func ReturnContract(proc *exec.Process, dst uint32, len uint32) + func Revert(proc *exec.Process) + func Ripemd160(proc *exec.Process, inputPtr, inputLen uint32, outputPtr uint32) + func RlpBytes(proc *exec.Process, src uint32, length uint32, dest uint32) + func RlpBytesSize(proc *exec.Process, src uint32, length uint32) uint32 + func RlpList(proc *exec.Process, src uint32, length uint32, dest uint32) + func RlpListSize(proc *exec.Process, length uint32) uint32 + func RlpU128(proc *exec.Process, heigh uint64, low uint64, dest uint32) + func RlpU128Size(proc *exec.Process, heigh uint64, low uint64) uint32 + func RunPlatONPrecompiledContract(p PlatONPrecompiledContract, input []byte, contract *Contract) (ret []byte, err error) + func RunPrecompiledContract(p PrecompiledContract, input []byte, contract *Contract) (ret []byte, err error) + func SetState(proc *exec.Process, key uint32, keyLen uint32, val uint32, valLen uint32) + func Sha256(proc *exec.Process, inputPtr, inputLen uint32, outputPtr uint32) + func Sha3(proc *exec.Process, src uint32, srcLen uint32, dst uint32, dstLen uint32) + func StaticCallContract(proc *exec.Process, addrPtr, params, paramsLen, callCost, callCostLen uint32) int32 + func Timestamp(proc *exec.Process) int64 + func Transfer(proc *exec.Process, dst uint32, amount uint32, len uint32) int32 + func WriteLogs(writer io.Writer, logs []*types.Log) + func WriteTrace(writer io.Writer, logs []StructLog) + type AccountRef common.Address + func (ar AccountRef) Address() common.Address + 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 + ConsoleOutput bool + Debug bool + JumpTable [256]*operation + NoRecursion bool + Tracer Tracer + VmTimeoutDuration uint64 + WasmType WasmInsType + type Context struct + BlockHash common.Hash + BlockNumber *big.Int + CanTransfer CanTransferFunc + Coinbase common.Address + Ctx context.Context + Difficulty *big.Int + GasLimit uint64 + GasPrice *big.Int + GetHash GetHashFunc + Origin common.Address + Time *big.Int + Transfer TransferFunc + type Contract struct + ABI []byte + ABIAddr *common.Address + ABIHash common.Hash + CallerAddress common.Address + Code []byte + CodeAddr *common.Address + CodeHash common.Hash + DeployContract bool + 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) SetCallAbi(addr *common.Address, hash common.Hash, abi []byte) + 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 DelegateRewardContract struct + Contract *Contract + Evm *EVM + Plugin *plugin.RewardMgrPlugin + func (rc *DelegateRewardContract) CheckGasPrice(gasPrice *big.Int, fcode uint16) error + func (rc *DelegateRewardContract) FnSigns() map[uint16]interface{} + func (rc *DelegateRewardContract) RequiredGas(input []byte) uint64 + func (rc *DelegateRewardContract) Run(input []byte) ([]byte, error) + type EVM struct + SnapshotDB snapshotdb.DB + StateDB StateDB + func NewEVM(ctx Context, snapshotDB snapshotdb.DB, 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) DBSnapshot() (snapshotID int, StateDBID int) + func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) GetEvm() *EVM + func (evm *EVM) GetStateDB() StateDB + func (evm *EVM) GetVMConfig() Config + func (evm *EVM) Interpreter() Interpreter + func (evm *EVM) RevertToDBSnapshot(snapshotDBID, stateDBID int) + 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 GovContract struct + Contract *Contract + Evm *EVM + Plugin *plugin.GovPlugin + func (gc *GovContract) CheckGasPrice(gasPrice *big.Int, fcode uint16) error + func (gc *GovContract) FnSigns() map[uint16]interface{} + func (gc *GovContract) RequiredGas(input []byte) uint64 + func (gc *GovContract) Run(input []byte) ([]byte, error) + type InterpType [InterpTypeLen]byte + func BytesToInterpType(b []byte) InterpType + func (t *InterpType) SetBytes(b []byte) + func (t InterpType) Bytes() []byte + func (t InterpType) String() string + type Interpreter interface + CanRun func([]byte) bool + Run func(contract *Contract, input []byte, static bool) ([]byte, error) + type JumpTable [256]*operation + type LogConfig struct + Debug bool + DisableMemory bool + DisableReturnData bool + DisableStack bool + DisableStorage bool + Limit int + 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 NodeList []*ValidateNode + func (nl *NodeList) String() string + type OpCode byte + const ADD + const ADDMOD + const ADDRESS + const AND + const BALANCE + const BEGINSUB + 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 JUMPSUB + 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 RETURNSUB + 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 PlatONPrecompiledContract interface + CheckGasPrice func(gasPrice *big.Int, fcode uint16) error + FnSigns func() map[uint16]interface{} + type PrecompiledContract interface + RequiredGas func(input []byte) uint64 + Run func(input []byte) ([]byte, error) + type PrecompiledContractCheck struct + func (pcc *PrecompiledContractCheck) IsPlatONPrecompiledContract(address common.Address) bool + type ProofList [][]byte + func (n *ProofList) Put(key []byte, value []byte) error + type RestrictingContract struct + Contract *Contract + Evm *EVM + Plugin *plugin.RestrictingPlugin + func (rc *RestrictingContract) CheckGasPrice(gasPrice *big.Int, fcode uint16) error + func (rc *RestrictingContract) FnSigns() map[uint16]interface{} + func (rc *RestrictingContract) RequiredGas(input []byte) uint64 + func (rc *RestrictingContract) Run(input []byte) ([]byte, error) + type ReturnStack struct + type SlashingContract struct + Contract *Contract + Evm *EVM + Plugin *plugin.SlashingPlugin + func (sc *SlashingContract) CheckGasPrice(gasPrice *big.Int, fcode uint16) error + func (sc *SlashingContract) FnSigns() map[uint16]interface{} + func (sc *SlashingContract) RequiredGas(input []byte) uint64 + func (sc *SlashingContract) Run(input []byte) ([]byte, error) + type Stack struct + func (st *Stack) Back(n int) *uint256.Int + func (st *Stack) Data() []uint256.Int + func (st *Stack) Print() + type StakingContract struct + Contract *Contract + Evm *EVM + Plugin *plugin.StakingPlugin + func (stkc *StakingContract) CheckGasPrice(gasPrice *big.Int, fcode uint16) error + func (stkc *StakingContract) FnSigns() map[uint16]interface{} + func (stkc *StakingContract) RequiredGas(input []byte) uint64 + func (stkc *StakingContract) Run(input []byte) ([]byte, error) + type StateDB interface + AddBalance func(common.Address, *big.Int) + AddLog func(*types.Log) + AddPreimage func(common.Hash, []byte) + AddRefund func(uint64) + CreateAccount func(common.Address) + Empty func(common.Address) bool + Exist func(common.Address) bool + ForEachStorage func(common.Address, func([]byte, []byte) bool) + 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, []byte) []byte + GetCurrentActiveVersion func() uint32 + GetLogs func(hash common.Hash) []*types.Log + GetNonce func(common.Address) uint64 + GetRefund func() uint64 + GetState func(common.Address, []byte) []byte + HasSuicided func(common.Address) bool + IntermediateRoot func(deleteEmptyObjects bool) common.Hash + MigrateStorage func(from, to common.Address) + RevertToSnapshot func(int) + SetCode func(common.Address, []byte) + SetNonce func(common.Address, uint64) + SetState func(common.Address, []byte, []byte) + Snapshot func() int + SubBalance func(common.Address, *big.Int) + SubRefund func(uint64) + Suicide func(common.Address) bool + TxHash func() common.Hash + TxIdx func() uint32 + 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 + ReturnStack []uint32 + Stack []*big.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) error + func (l *StructLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + func (l *StructLogger) CaptureStart(from common.Address, to common.Address, create bool, input []byte, gas uint64, ...) error + func (l *StructLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + func (l *StructLogger) Error() error + func (l *StructLogger) Output() []byte + func (l *StructLogger) StructLogs() []StructLog + type Tracer interface + CaptureEnd func(output []byte, gasUsed uint64, t time.Duration, err error) error + CaptureFault func(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + CaptureStart func(from common.Address, to common.Address, create bool, input []byte, gas uint64, ...) error + CaptureState func(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + type TransferFunc func(StateDB, common.Address, common.Address, *big.Int) + type VMContext struct + CallOut []byte + Input []byte + Log *WasmLogger + Output []byte + Revert bool + type ValidateNode struct + Address common.NodeAddress + BlsPubKey bls.PublicKey + Index uint + NodeID discover.NodeID + type ValidatorInnerContractBase interface + CurrentValidators func() (*Validators, error) + NextValidators func() (*Validators, error) + SwitchValidators func(validBlockNumber uint64) error + UpdateValidators func(validators *Validators) error + type Validators struct + ValidBlockNumber uint64 + ValidateNodes NodeList + func (vds *Validators) String() string + type WASMInterpreter struct + func NewWASMInterpreter(evm *EVM, cfg Config) *WASMInterpreter + func (in *WASMInterpreter) CanRun(code []byte) bool + func (in *WASMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) + type WasmDeploy struct + Args [][]byte + VM byte + type WasmInoke struct + Args *WasmParams + VM byte + type WasmInsType byte + const Unknown + const Wagon + func Str2WasmType(str string) WasmInsType + func (t WasmInsType) String() string + type WasmLogger struct + func NewWasmLogger(cfg Config, root log.Logger) *WasmLogger + func (wl *WasmLogger) Crit(msg string, ctx ...interface{}) + func (wl *WasmLogger) Debug(msg string, ctx ...interface{}) + func (wl *WasmLogger) Error(msg string, ctx ...interface{}) + func (wl *WasmLogger) Flush() + func (wl *WasmLogger) GetHandler() log.Handler + func (wl *WasmLogger) Info(msg string, ctx ...interface{}) + func (wl *WasmLogger) New(ctx ...interface{}) log.Logger + func (wl *WasmLogger) SetHandler(h log.Handler) + func (wl *WasmLogger) Trace(msg string, ctx ...interface{}) + func (wl *WasmLogger) Warn(msg string, ctx ...interface{}) + type WasmParams struct + Args [][]byte + FuncName []byte