diff --git a/blockchain/state_transition.go b/blockchain/state_transition.go index 4a6fd4377..40459ac9a 100644 --- a/blockchain/state_transition.go +++ b/blockchain/state_transition.go @@ -363,6 +363,19 @@ func (st *StateTransition) TransitionDb() (*ExecutionResult, error) { ) ret, st.gas, vmerr = msg.Execute(st.evm, st.state, st.evm.Context.BlockNumber.Uint64(), st.gas, st.value) + // These tx types does not enter the EVM in the msg.Execute() method. For the purpose of debug traces, + // those tx types are considered as a harmless zero-value transfer to sender itself. This aligns with + // how the eth_getTransaction fills the 'to' field for those tx types. See also api_ethereum.go:resolveToField + if st.evm.Config.Debug { + txType := msg.Type() + if txType.IsAccountUpdate() || txType.IsCancelTransaction() || txType.IsChainDataAnchoring() { + st.evm.Config.Tracer.CaptureStart(st.evm, msg.ValidatedSender(), msg.ValidatedSender(), false, msg.Data(), st.initialGas, msg.Value()) + defer func() { + st.evm.Config.Tracer.CaptureEnd(ret, st.gasUsed(), vmerr) + }() + } + } + // time-limit error is not a vm error. This error is returned when the EVM is still running while the // block proposer's total execution time of txs for a candidate block reached the predefined limit. if vmerr == vm.ErrTotalTimeLimitReached { diff --git a/blockchain/vm/call_tracer.go b/blockchain/vm/call_tracer.go new file mode 100644 index 000000000..36b1930fb --- /dev/null +++ b/blockchain/vm/call_tracer.go @@ -0,0 +1,210 @@ +// Modifications Copyright 2024 The Kaia Authors +// Modifications Copyright 2020 The klaytn Authors +// Copyright 2017 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package vm + +import ( + "encoding/json" + "errors" + "math/big" + "sync/atomic" + + "github.com/klaytn/klaytn/accounts/abi" + "github.com/klaytn/klaytn/common" + "github.com/klaytn/klaytn/common/hexutil" +) + +var _ Tracer = (*CallTracer)(nil) + +//go:generate go run github.com/fjl/gencodec -type CallFrame -field-override callFrameMarshaling -out gen_callframe_json.go +type CallFrame struct { + Type OpCode `json:"-"` // e.g. CALL, DELEGATECALL, CREATE + From common.Address `json:"from"` + Gas uint64 `json:"gas"` // gasLeft. for top-level call, tx.gasLimit + GasUsed uint64 `json:"gasUsed"` // gasUsed so far. for top-level call, tx.gasLimit - gasLeft = receipt.gasUsed + To *common.Address `json:"to,omitempty"` // recipient address, created contract address, or nil for failed contract creation, + Input []byte `json:"input"` + Output []byte `json:"output,omitempty"` // result of an internal call or revert message or runtime bytecode + Error string `json:"error,omitempty"` + RevertReason string `json:"revertReason,omitempty"` // decoded revert message in geth style. + Reverted *RevertedInfo `json:"reverted,omitempty"` // decoded revert message and reverted contract address in klaytn style. + Calls []CallFrame `json:"calls,omitempty"` // child calls + Value *big.Int `json:"value,omitempty"` +} + +func (f CallFrame) TypeString() string { // to satisfy gencodec + return f.Type.String() +} + +// FieldType overrides for callFrame that's used for JSON encoding +// Must rerun gencodec after modifying this struct +type callFrameMarshaling struct { + TypeString string `json:"type"` + Gas hexutil.Uint64 + GasUsed hexutil.Uint64 + Value *hexutil.Big + Input hexutil.Bytes + Output hexutil.Bytes +} + +// Populate output, error, and revert-related fields +// 1. no error: {output} +// 2. non-revert error: {to: nil if CREATE, error} +// 3. revert error without message: {to: nil if CREATE, output, error, reverted{contract}} +// 4. revert error with message: {to: nil if CREATE, output, error, reverted{contract, message}, revertReason} +func (c *CallFrame) processOutput(output []byte, err error) { + // 1: return output + if err == nil { + c.Output = common.CopyBytes(output) + return + } + + // 2,3,4: to = nil if CREATE failed + if c.Type == CREATE || c.Type == CREATE2 { + c.To = nil + } + + // 2: do not return output + if !errors.Is(err, ErrExecutionReverted) { // non-revert error + c.Error = err.Error() + return + } + + // 3,4: return output and revert info + c.Output = common.CopyBytes(output) + c.Error = "execution reverted" + c.Reverted = &RevertedInfo{Contract: c.To} // 'To' was recorded when entering this call frame + + // 4: attach revert reason + if reason, unpackErr := abi.UnpackRevert(output); unpackErr == nil { + c.RevertReason = reason + c.Reverted.Message = reason + } +} + +// Implements vm.Tracer interface +type CallTracer struct { + callstack []CallFrame + gasLimit uint64 // saved tx.gasLimit + interrupt atomic.Bool + interruptReason error +} + +func NewCallTracer() *CallTracer { + return &CallTracer{ + callstack: make([]CallFrame, 1), // empty top-level frame + } +} + +// Transaction start +func (t *CallTracer) CaptureTxStart(gasLimit uint64) { + t.gasLimit = gasLimit +} + +// Transaction end +func (t *CallTracer) CaptureTxEnd(gasLeft uint64) { + t.callstack[0].GasUsed = t.callstack[0].Gas - gasLeft +} + +// Enter top-level call frame +func (t *CallTracer) CaptureStart(env *EVM, from common.Address, to common.Address, create bool, input []byte, gas uint64, value *big.Int) { + toCopy := to + t.callstack[0] = CallFrame{ + Type: CALL, + From: from, + To: &toCopy, + Input: common.CopyBytes(input), + Gas: t.gasLimit, // ignore 'gas' supplied from EVM. Use tx.gasLimit that includes intrinsic gas. + Value: value, + } + if create { + t.callstack[0].Type = CREATE + } +} + +// Exit top-level call frame +func (t *CallTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { + // gasUsed will be filled by CaptureTxEnd; just process the output + t.callstack[0].processOutput(output, err) +} + +// Enter nested call frame +func (t *CallTracer) CaptureEnter(typ OpCode, from common.Address, to common.Address, input []byte, gas uint64, value *big.Int) { + if t.interrupt.Load() { + return + } + + toCopy := to + call := CallFrame{ + Type: typ, + From: from, + Gas: gas, + To: &toCopy, + Value: value, + Input: common.CopyBytes(input), + } + t.callstack = append(t.callstack, call) +} + +// Exit nested call frame +func (t *CallTracer) CaptureExit(output []byte, gasUsed uint64, err error) { + size := len(t.callstack) + if size <= 1 { // just in case; should never happen though because CaptureExit is only called when depth > 0 + return + } + + // process output into the currently exiting call + call := t.callstack[size-1] + call.GasUsed = gasUsed + call.processOutput(output, err) + + // pop current frame + t.callstack = t.callstack[:size-1] + + // append it to the parent frame's Calls + t.callstack[size-2].Calls = append(t.callstack[size-2].Calls, call) +} + +// Each opcode +func (t *CallTracer) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost, ccLeft, ccOpcode uint64, scope *ScopeContext, depth int, err error) { +} + +// Fault during opcode execution +func (t *CallTracer) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost, ccLeft, ccOpcode uint64, scope *ScopeContext, depth int, err error) { +} + +func (t *CallTracer) GetResult() (json.RawMessage, error) { + if len(t.callstack) != 1 { + return nil, errors.New("incorrect number of top-level calls") + } + + result, err := json.Marshal(t.callstack[0]) + if err != nil { + return nil, err + } + + // Return with interrupt reason if any + return result, t.interruptReason +} + +// Stop terminates execution of the tracer at the first opportune moment. +// For CallTracer, it stops at CaptureEnter, which is the most repetitive operation. +func (t *CallTracer) Stop(err error) { + t.interrupt.Store(true) + t.interruptReason = err +} diff --git a/blockchain/vm/evm.go b/blockchain/vm/evm.go index b6ff59a8c..4e1b97106 100644 --- a/blockchain/vm/evm.go +++ b/blockchain/vm/evm.go @@ -222,6 +222,21 @@ func (evm *EVM) Cancelled() bool { // the necessary steps to create accounts and reverses the state in case of an // execution error or failed value transfer. func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte, gas uint64, value *big.Int) (ret []byte, leftOverGas uint64, err error) { + // Invoke tracer hooks that signal entering/exiting a call frame + if evm.Config.Debug { + if evm.depth == 0 { // top frame + evm.Config.Tracer.CaptureStart(evm, caller.Address(), addr, false, input, gas, value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureEnd(ret, startGas-leftOverGas, err) + }(gas) + } else { // rest of the frames + evm.Config.Tracer.CaptureEnter(CALL, caller.Address(), addr, input, gas, value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) + } + } + if evm.Config.NoRecursion && evm.depth > 0 { return nil, gas, nil } @@ -238,7 +253,6 @@ func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte var ( to = AccountRef(addr) snapshot = evm.StateDB.Snapshot() - debug = evm.Config.Debug ) // Filter out invalid precompiled address calls, and create a precompiled contract object if it is not exist. @@ -246,15 +260,6 @@ func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte precompiles := evm.GetPrecompiledContractMap(caller.Address()) if precompiles[addr] == nil || value.Sign() != 0 { // Return an error if an enabled precompiled address is called or a value is transferred to a precompiled address. - if debug { - if evm.depth == 0 { - evm.Config.Tracer.CaptureStart(evm, caller.Address(), addr, false, input, gas, value) - evm.Config.Tracer.CaptureEnd(ret, 0, nil) - } else { - evm.Config.Tracer.CaptureEnter(CALL, caller.Address(), addr, input, gas, value) - evm.Config.Tracer.CaptureExit(ret, 0, nil) - } - } return nil, gas, kerrors.ErrPrecompiledContractAddress } // create an account object of the enabled precompiled address if not exist. @@ -268,15 +273,6 @@ func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte if !evm.StateDB.Exist(addr) { if value.Sign() == 0 { // Calling a non-existing account (probably contract), don't do anything, but ping the tracer - if debug { - if evm.depth == 0 { - evm.Config.Tracer.CaptureStart(evm, caller.Address(), addr, false, input, gas, value) - evm.Config.Tracer.CaptureEnd(ret, 0, nil) - } else { - evm.Config.Tracer.CaptureEnter(CALL, caller.Address(), addr, input, gas, value) - evm.Config.Tracer.CaptureExit(ret, 0, nil) - } - } return nil, gas, nil } // If non-existing address is called with a value, an object of the address is created. @@ -284,21 +280,6 @@ func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte } evm.Context.Transfer(evm.StateDB, caller.Address(), to.Address(), value) - if debug { - if evm.depth == 0 { - evm.Config.Tracer.CaptureStart(evm, caller.Address(), addr, false, input, gas, value) - defer func(startGas uint64) { // Lazy evaluation of the parameters - evm.Config.Tracer.CaptureEnd(ret, startGas-gas, err) - }(gas) - } else { - // Handle tracer events for entering and exiting a call frame - evm.Config.Tracer.CaptureEnter(CALL, caller.Address(), addr, input, gas, value) - defer func(startGas uint64) { - evm.Config.Tracer.CaptureExit(ret, startGas-gas, err) - }(gas) - } - } - if isProgramAccount(evm, caller.Address(), addr, evm.StateDB) { // Initialise a new contract and set the code that is to be used by the EVM. // The contract is a scoped environment for this execution context only. @@ -329,6 +310,14 @@ func (evm *EVM) Call(caller types.ContractRef, addr common.Address, input []byte // CallCode differs from Call in the sense that it executes the given address' // code with the caller as context. func (evm *EVM) CallCode(caller types.ContractRef, addr common.Address, input []byte, gas uint64, value *big.Int) (ret []byte, leftOverGas uint64, err error) { + // Invoke tracer hooks that signal entering/exiting a call frame + if evm.Config.Debug { // Note that CALLCODE cannot be the top frame + evm.Config.Tracer.CaptureEnter(CALLCODE, caller.Address(), addr, input, gas, value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) + } + if evm.Config.NoRecursion && evm.depth > 0 { return nil, gas, nil } @@ -354,14 +343,6 @@ func (evm *EVM) CallCode(caller types.ContractRef, addr common.Address, input [] to = AccountRef(caller.Address()) ) - // Invoke tracer hooks that signal entering/exiting a call frame - if evm.Config.Debug { - evm.Config.Tracer.CaptureEnter(CALLCODE, caller.Address(), addr, input, gas, value) - defer func(startGas uint64) { - evm.Config.Tracer.CaptureExit(ret, startGas-gas, err) - }(gas) - } - // Initialise a new contract and set the code that is to be used by the EVM. // The contract is a scoped environment for this execution context only. contract := NewContract(caller, to, value, gas) @@ -383,6 +364,18 @@ func (evm *EVM) CallCode(caller types.ContractRef, addr common.Address, input [] // DelegateCall differs from CallCode in the sense that it executes the given address' // code with the caller as context and the caller is set to the caller of the caller. func (evm *EVM) DelegateCall(caller types.ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) { + // Invoke tracer hooks that signal entering/exiting a call frame + if evm.Config.Debug { // Note that DELEGATECALL cannot be the top frame + // NOTE: caller must, at all times be a contract. It should never happen + // that caller is something other than a Contract. + parent := caller.(*Contract) + // DELEGATECALL inherits value from parent call + evm.Config.Tracer.CaptureEnter(DELEGATECALL, caller.Address(), addr, input, gas, parent.value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) + } + if evm.Config.NoRecursion && evm.depth > 0 { return nil, gas, nil } @@ -401,18 +394,6 @@ func (evm *EVM) DelegateCall(caller types.ContractRef, addr common.Address, inpu to = AccountRef(caller.Address()) ) - // Invoke tracer hooks that signal entering/exiting a call frame - if evm.Config.Debug { - // NOTE: caller must, at all times be a contract. It should never happen - // that caller is something other than a Contract. - parent := caller.(*Contract) - // DELEGATECALL inherits value from parent call - evm.Config.Tracer.CaptureEnter(DELEGATECALL, caller.Address(), addr, input, gas, parent.value) - defer func(startGas uint64) { - evm.Config.Tracer.CaptureExit(ret, startGas-gas, err) - }(gas) - } - // Initialise a new contract and make initialise the delegate values contract := NewContract(caller, to, nil, gas).AsDelegate() contract.SetCallCode(&addr, evm.StateDB.GetCodeHash(addr), evm.StateDB.GetCode(addr)) @@ -432,6 +413,14 @@ func (evm *EVM) DelegateCall(caller types.ContractRef, addr common.Address, inpu // Opcodes that attempt to perform such modifications will result in exceptions // instead of performing the modifications. func (evm *EVM) StaticCall(caller types.ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) { + // Invoke tracer hooks that signal entering/exiting a call frame + if evm.Config.Debug { // Note that STATICCALL cannot be the top frame + evm.Config.Tracer.CaptureEnter(STATICCALL, caller.Address(), addr, input, gas, nil) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) + } + if evm.Config.NoRecursion && evm.depth > 0 { return nil, gas, nil } @@ -457,14 +446,6 @@ func (evm *EVM) StaticCall(caller types.ContractRef, addr common.Address, input snapshot = evm.StateDB.Snapshot() ) - // Invoke tracer hooks that signal entering/exiting a call frame - if evm.Config.Debug { - evm.Config.Tracer.CaptureEnter(STATICCALL, caller.Address(), addr, input, gas, nil) - defer func(startGas uint64) { - evm.Config.Tracer.CaptureExit(ret, startGas-gas, err) - }(gas) - } - // Initialise a new contract and set the code that is to be used by the EVM. // The contract is a scoped environment for this execution context only. contract := NewContract(caller, to, new(big.Int), gas) @@ -497,6 +478,21 @@ func (c *codeAndHash) Hash() common.Hash { // Create creates a new contract using code as deployment code. func (evm *EVM) create(caller types.ContractRef, codeAndHash *codeAndHash, gas uint64, value *big.Int, address common.Address, typ OpCode, humanReadable bool, codeFormat params.CodeFormat) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) { + // Invoke tracer hooks that signal entering/exiting a call frame + if evm.Config.Debug { + if evm.depth == 0 { + evm.Config.Tracer.CaptureStart(evm, caller.Address(), address, true, codeAndHash.code, gas, value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureEnd(ret, startGas-leftOverGas, err) + }(gas) + } else { + evm.Config.Tracer.CaptureEnter(typ, caller.Address(), address, codeAndHash.code, gas, value) + defer func(startGas uint64) { + evm.Config.Tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) + } + } + // Depth check execution. Fail if we're trying to execute above the // limit. if evm.depth > int(params.CallCreateDepth) { @@ -554,14 +550,6 @@ func (evm *EVM) create(caller types.ContractRef, codeAndHash *codeAndHash, gas u return nil, address, gas, nil } - if evm.Config.Debug { - if evm.depth == 0 { - evm.Config.Tracer.CaptureStart(evm, caller.Address(), address, true, codeAndHash.code, gas, value) - } else { - evm.Config.Tracer.CaptureEnter(typ, caller.Address(), address, codeAndHash.code, gas, value) - } - } - ret, err = evm.interpreter.Run(contract, nil) // check whether the max code size has been exceeded @@ -605,14 +593,6 @@ func (evm *EVM) create(caller types.ContractRef, codeAndHash *codeAndHash, gas u err = ErrInvalidCode } - if evm.Config.Debug { - if evm.depth == 0 { - evm.Config.Tracer.CaptureEnd(ret, gas-contract.Gas, err) - } else { - evm.Config.Tracer.CaptureExit(ret, gas-contract.Gas, err) - } - } - return ret, address, contract.Gas, err } diff --git a/blockchain/vm/gen_callframe_json.go b/blockchain/vm/gen_callframe_json.go new file mode 100644 index 000000000..4029e9244 --- /dev/null +++ b/blockchain/vm/gen_callframe_json.go @@ -0,0 +1,106 @@ +// Code generated by github.com/fjl/gencodec. DO NOT EDIT. + +package vm + +import ( + "encoding/json" + "math/big" + + "github.com/klaytn/klaytn/common" + "github.com/klaytn/klaytn/common/hexutil" +) + +var _ = (*callFrameMarshaling)(nil) + +// MarshalJSON marshals as JSON. +func (c CallFrame) MarshalJSON() ([]byte, error) { + type CallFrame0 struct { + Type OpCode `json:"-"` + From common.Address `json:"from"` + Gas hexutil.Uint64 `json:"gas"` + GasUsed hexutil.Uint64 `json:"gasUsed"` + To *common.Address `json:"to,omitempty"` + Input hexutil.Bytes `json:"input"` + Output hexutil.Bytes `json:"output,omitempty"` + Error string `json:"error,omitempty"` + RevertReason string `json:"revertReason,omitempty"` + Reverted *RevertedInfo `json:"reverted,omitempty"` + Calls []CallFrame `json:"calls,omitempty"` + Value *hexutil.Big `json:"value,omitempty"` + TypeString string `json:"type"` + } + var enc CallFrame0 + enc.Type = c.Type + enc.From = c.From + enc.Gas = hexutil.Uint64(c.Gas) + enc.GasUsed = hexutil.Uint64(c.GasUsed) + enc.To = c.To + enc.Input = c.Input + enc.Output = c.Output + enc.Error = c.Error + enc.RevertReason = c.RevertReason + enc.Reverted = c.Reverted + enc.Calls = c.Calls + enc.Value = (*hexutil.Big)(c.Value) + enc.TypeString = c.TypeString() + return json.Marshal(&enc) +} + +// UnmarshalJSON unmarshals from JSON. +func (c *CallFrame) UnmarshalJSON(input []byte) error { + type CallFrame0 struct { + Type *OpCode `json:"-"` + From *common.Address `json:"from"` + Gas *hexutil.Uint64 `json:"gas"` + GasUsed *hexutil.Uint64 `json:"gasUsed"` + To *common.Address `json:"to,omitempty"` + Input *hexutil.Bytes `json:"input"` + Output *hexutil.Bytes `json:"output,omitempty"` + Error *string `json:"error,omitempty"` + RevertReason *string `json:"revertReason,omitempty"` + Reverted *RevertedInfo `json:"reverted,omitempty"` + Calls []CallFrame `json:"calls,omitempty"` + Value *hexutil.Big `json:"value,omitempty"` + } + var dec CallFrame0 + if err := json.Unmarshal(input, &dec); err != nil { + return err + } + if dec.Type != nil { + c.Type = *dec.Type + } + if dec.From != nil { + c.From = *dec.From + } + if dec.Gas != nil { + c.Gas = uint64(*dec.Gas) + } + if dec.GasUsed != nil { + c.GasUsed = uint64(*dec.GasUsed) + } + if dec.To != nil { + c.To = dec.To + } + if dec.Input != nil { + c.Input = *dec.Input + } + if dec.Output != nil { + c.Output = *dec.Output + } + if dec.Error != nil { + c.Error = *dec.Error + } + if dec.RevertReason != nil { + c.RevertReason = *dec.RevertReason + } + if dec.Reverted != nil { + c.Reverted = dec.Reverted + } + if dec.Calls != nil { + c.Calls = dec.Calls + } + if dec.Value != nil { + c.Value = (*big.Int)(dec.Value) + } + return nil +} diff --git a/go.mod b/go.mod index 6cb1e3daa..066c3bdf2 100644 --- a/go.mod +++ b/go.mod @@ -105,6 +105,8 @@ require ( github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e // indirect + github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/golang/glog v1.1.0 // indirect github.com/google/go-cmp v0.5.9 // indirect diff --git a/go.sum b/go.sum index c69620b0f..741dce326 100644 --- a/go.sum +++ b/go.sum @@ -176,6 +176,8 @@ github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/ferranbt/fastssz v0.1.3 h1:ZI+z3JH05h4kgmFXdHuR1aWYsgrg7o+Fw7/NCzM16Mo= github.com/ferranbt/fastssz v0.1.3/go.mod h1:0Y9TEd/9XuFlh7mskMPfXiI2Dkw4Ddg9EyXt1W7MRvE= +github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e h1:bBLctRc7kr01YGvaDfgLbTwjFNW5jdp5y5rj8XXBHfY= +github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -187,6 +189,8 @@ github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc= +github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= diff --git a/node/cn/tracers/internal/tracers/assets.go b/node/cn/tracers/internal/tracers/assets.go index 3b0942543..6d9be4bd1 100644 --- a/node/cn/tracers/internal/tracers/assets.go +++ b/node/cn/tracers/internal/tracers/assets.go @@ -126,7 +126,7 @@ func bigram_tracerJs() (*asset, error) { return a, nil } -var _call_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x3a\xef\x6f\x23\xb7\xb1\x9f\xa5\xbf\x62\xa2\x0f\xb1\x54\xeb\x24\xd9\x97\xa6\xad\x1c\xe5\x41\xf5\xf9\x12\x03\xce\xf9\x60\xfb\x1a\x04\x87\xc3\x03\xb5\x3b\x2b\x31\x5e\x91\x5b\x92\x6b\x59\x4d\xfd\xbf\x3f\xcc\x90\x5c\xed\xea\x87\xcf\x4d\x82\x87\x00\xb5\xbf\x68\x97\x33\xc3\xe1\xfc\x9e\x59\x0e\x87\xf0\x83\x4e\x65\x26\x13\xe1\xa4\x56\x16\xce\x75\xb1\x36\x72\xbe\x70\x70\x3a\x3a\xf9\x1b\xdc\x2d\x10\xee\x73\xb1\x76\x0a\xa6\xa5\x5b\x68\x63\xdb\xc3\x61\x13\xe8\x2f\x0c\x34\xd7\xaf\xd0\x2d\xd0\x60\xb9\xac\x43\xde\x2d\xa4\x85\x4c\xe6\x08\xd2\x42\x21\x8c\x03\x9d\x81\xdb\x82\xcf\xe5\xcc\x08\xb3\x1e\xb4\x87\x43\x8f\xb3\x77\x99\x28\x64\x06\x11\xac\xce\xdc\x4a\x18\x1c\xc3\x5a\x97\x90\x08\x05\x06\x53\x69\x9d\x91\xb3\xd2\x21\x48\x07\x42\xa5\x43\x6d\x60\x49\x27\x5b\x13\x49\xe9\xa0\x54\x29\x1a\xde\xda\xa1\x59\xda\xc8\xc7\x77\xef\x3e\xc0\x15\x5a\x8b\x06\xbe\x43\x85\x46\xe4\xf0\xbe\x9c\xe5\x32\x81\x2b\x99\xa0\xb2\x08\xc2\x42\x41\x6f\xec\x02\x53\x98\x31\x39\x42\x7c\x4b\xac\xdc\x06\x56\xe0\xad\x2e\x55\xca\x22\xec\x03\x4a\xe2\x1c\x1e\xd0\x58\xa9\x15\xbc\x8e\x5b\x05\x82\x7d\xd0\x86\x88\x74\x85\xa3\x03\x18\xd0\x05\xe1\xf5\x40\xa8\x35\xe4\xc2\x6d\x50\x5f\x20\x90\xcd\xb9\x53\x90\x8a\xb7\x59\xe8\x02\xc1\x2d\x84\xa3\x53\xaf\x64\x9e\xc3\x0c\xa1\xb4\x98\x95\x79\x9f\xa8\xcd\x4a\x07\x3f\x5e\xde\x7d\x7f\xfd\xe1\x0e\xa6\xef\x7e\x82\x1f\xa7\x37\x37\xd3\x77\x77\x3f\x9d\xc1\x4a\xba\x85\x2e\x1d\xe0\x03\x7a\x52\x72\x59\xe4\x12\x53\x58\x09\x63\x84\x72\x6b\xd0\x19\x51\xf8\xe1\xe2\xe6\xfc\xfb\xe9\xbb\xbb\xe9\xdf\x2f\xaf\x2e\xef\x7e\x02\x6d\xe0\xed\xe5\xdd\xbb\x8b\xdb\x5b\x78\x7b\x7d\x03\x53\x78\x3f\xbd\xb9\xbb\x3c\xff\x70\x35\xbd\x81\xf7\x1f\x6e\xde\x5f\xdf\x5e\x0c\xe0\x16\x89\x2b\x24\xfc\xcf\xcb\x3c\x63\xed\x19\x84\x14\x9d\x90\xb9\x8d\x92\xf8\x49\x97\x60\x17\xba\xcc\x53\x58\x88\x07\x04\x83\x09\xca\x07\x4c\x41\x40\xa2\x8b\xf5\x8b\x95\x4a\xb4\x44\xae\xd5\x9c\xcf\x7c\xd0\x20\xe1\x32\x03\xa5\x5d\x1f\x2c\x22\x7c\xb3\x70\xae\x18\x0f\x87\xab\xd5\x6a\x30\x57\xe5\x40\x9b\xf9\x30\xf7\xe4\xec\xf0\xdb\x8d\xae\x6a\x06\x9f\xa2\x61\xee\x32\xa3\x97\x80\x6e\x31\x74\x46\x24\x68\xec\x50\x2a\x87\x46\x89\xbc\x7a\x91\x88\x3c\xff\x5f\xff\x30\xf8\xd9\x42\x97\x9c\x6f\x38\x3a\x19\x9e\xfc\xb9\x37\x68\x57\x4e\x4a\x07\x55\x29\xa9\xc5\x68\xa6\xab\xbd\x45\x07\x0f\x4d\xf1\x01\x73\x5d\x2c\x51\xb9\xc8\x0e\xd1\xbd\x63\xb2\xc4\x8f\x80\xac\x24\x7b\xc8\xf5\x4a\x81\x33\x42\x59\x91\x90\xed\x81\xdf\xd9\x5b\x0d\x3e\xd2\x93\xb3\xbc\x95\xc1\x42\x1b\xfa\x9d\xe7\xd1\xf0\x23\xef\x4c\xdb\xc2\x52\xa4\x08\xb3\x35\x88\x3a\xc1\x7e\x5d\xba\x64\xd7\xde\xfe\x40\xaa\x4c\x9b\x25\xfb\xc9\xa0\xfd\x4b\xbb\x15\x38\xb4\x4e\x24\xf7\xc4\x20\xd1\x4f\x4a\x63\x50\x39\xd2\x6d\x69\xac\x7c\x40\x06\x01\x0f\x13\x14\x7c\xf1\x8f\x1f\x00\x1f\x31\x29\x3d\xa5\x56\x45\x64\x0c\x1f\x7f\x79\xfa\xd4\x6f\xb7\x0c\x3e\xa0\x71\x98\x9e\x6b\xc5\xc7\x19\x43\xa7\xd3\x6f\xf3\x8e\x29\xda\x04\x55\x8a\x29\x1f\xfb\xde\xc2\x6a\xc1\x9a\x87\x15\x1e\x3d\x20\xfc\x5c\x5a\x57\x83\x61\xdd\x09\x05\xba\x24\xcf\xac\x0b\x4d\x2a\xa7\x99\xa0\xa0\xdf\x0a\x0d\x33\x3a\x68\xb7\x2a\xe4\x31\x64\x22\xb7\x48\xfb\x3a\x3d\xb5\x89\x94\x63\xc8\x4a\xc5\xe8\xdd\x05\x3e\xf6\xe0\x97\x76\xab\xf5\x20\x0c\x58\x67\x60\x02\x9d\xce\x59\x78\x96\x30\x81\x51\x1f\x72\x98\xc0\x02\x1f\x07\x39\xaa\xb9\x5b\xd0\xa2\xcc\x80\x30\x07\xb6\x9c\x91\xe7\xab\x79\x77\xd4\x87\xd3\x1e\x4c\x26\x13\xe8\x8c\x1e\x3b\x9e\x64\x8b\xf0\x4f\x09\xfe\xa9\xdd\x6a\x91\x99\x74\xcf\x40\xc2\x37\x90\x9f\x81\x3c\x9e\x9c\x06\x28\xda\x29\xd1\x29\xc2\x84\x62\xb3\xc5\x4b\xe5\x6a\xc4\xbb\x92\x28\xf7\xe1\xe4\xeb\x1e\x51\x6a\x11\x8f\xc7\x13\xb8\xe5\x6d\x07\x24\x97\xf3\x85\x30\xe7\x3a\xc5\x2e\x11\xe9\xf9\xed\xda\xad\x96\x41\x57\x1a\x45\x67\x3a\x6b\xb7\x9e\x82\xd4\xad\xc3\x82\x54\x2c\xd5\x83\xbe\x0f\xb6\x4b\x3a\x5a\x83\x2e\x98\x07\x36\x3e\x52\x6e\xa5\x5b\xb4\x83\x76\x8b\xf0\x6a\x52\xcb\xf5\xbc\x0f\xe9\xcc\x1f\x80\x52\x91\x28\x5c\x69\x90\x8d\x0c\x8d\xd1\xc6\x82\x5c\x2e\x31\x95\xc2\x61\xbe\x0e\xd2\xe4\x05\x98\x40\xae\xe7\x83\x39\xba\x0b\x7a\xec\xf6\xa2\x38\xfd\xea\x17\x93\x09\xe7\x88\x4c\x2a\x4c\x83\x7c\xdc\x42\xda\x41\x26\xca\xdc\x55\xfb\xb2\x24\xfc\x01\xa3\x78\x87\x43\xf8\x11\x41\xab\x7c\x0d\x09\xe5\x02\x31\xa3\x20\x6a\xd7\xd6\xe1\x32\x1c\xce\xf6\x21\x13\x96\x0c\x48\x66\xb0\x42\x28\x0c\xbe\x4a\x16\x48\x06\xad\x12\x8c\x36\xb0\xb6\x6c\xe9\x13\xa0\xdd\x06\xba\x18\x38\xfd\xae\x5c\xce\xd0\x74\x7b\xf0\x25\x8c\x1e\xb3\x11\xe9\x99\x7f\x44\xde\x03\x4e\x4d\x9f\xba\x08\x07\x65\x7c\xaf\xac\x6e\xaf\xc6\xeb\x65\x06\x02\x14\xae\x20\x09\xae\x41\x5a\x99\xa1\x54\x73\x48\x0c\x0a\x87\x69\x1f\x44\x9a\x82\xd3\xde\x1d\x2b\xe7\x6b\x6e\x09\x5f\x7e\x09\x5d\xda\x6c\x02\x47\xe7\x37\x17\xd3\xbb\x8b\x23\xf8\xf7\xbf\xa1\xf1\xe6\xf4\xa8\x57\xe3\x4c\xaa\xeb\x2c\x0b\xcc\x31\xc1\x41\x81\x78\xdf\x3d\xe9\x0d\x1e\x44\x5e\xe2\x75\xe6\xd9\x0c\xb0\x17\x2a\x85\x49\xc0\x39\xde\xc6\x39\x6d\xe0\x10\xd2\x70\x08\x53\x6b\x71\x39\xcb\x71\x37\x4a\x85\x30\xc6\x11\xcd\x3a\xca\x2b\x64\x7d\x89\x5e\x16\x39\x92\x55\x55\xbe\xe0\xc5\xcf\x1c\xb7\xdc\xba\xc0\x31\x00\x80\x2e\xfa\xfc\x82\x2c\x9e\x5f\x38\xfd\x3d\x3e\xb2\x8e\xa2\x08\xc9\xaa\xa6\x69\x6a\xd0\xda\x6e\xaf\xe7\xc1\xa5\x2a\x4a\x37\x6e\x80\x2f\x71\xa9\xcd\x7a\x60\x29\x6d\x74\xf9\x68\x7d\x7f\xd2\x88\x33\x17\xf6\x52\x11\x4e\xb0\xd4\xef\x84\xed\x6e\x96\xce\xb5\x75\xe3\xb8\x44\x0f\x71\x8d\x65\x41\x68\x47\xa3\xc7\xa3\x5d\x69\x8d\x7a\x1b\x4b\x38\xf9\xba\x47\x28\x4f\x67\x95\x7d\x57\xb1\x73\x50\x94\x76\xd1\x65\x73\xda\xac\x6e\x02\xe1\x04\x9c\x29\x71\xaf\xf9\xb3\x49\xed\x9a\x93\xc5\x3c\xa3\x48\xea\x4c\x99\xb0\x59\xcd\x05\xc7\x59\xf6\x74\x41\xe9\xc8\x96\x33\x96\xb9\xd3\x7a\xd7\xba\x82\x29\xdd\x5e\x5c\xbd\x7d\x73\x71\x7b\x77\xf3\xe1\xfc\xee\xa8\x66\x4e\x39\x66\x8e\x98\x6a\x9e\x61\x13\x29\x99\x5c\x73\xf5\x23\xe1\xbc\x3a\xf9\xc4\xd1\x72\xdb\xd9\x5b\x87\x60\xe1\x17\x2f\xad\xa7\xe7\x89\xfa\x37\xff\x09\xe9\x88\x01\x1f\x3f\x6d\x36\x78\x0e\xd4\x6b\xa8\x6e\x9e\xbf\xd2\x36\x9d\x66\xe0\x08\xee\x74\x04\x78\xde\x72\x7e\x67\x33\x4d\x67\x04\xf1\x77\x91\x0b\x95\xe0\x33\x3c\x37\x78\x60\x52\x4f\xf5\x38\xbc\x27\xb4\x2d\xd1\x2d\x74\xca\xb9\xc6\x37\x36\x1b\xa3\x4c\xb5\xc2\xff\x3c\xc0\x4d\xaf\xae\x1a\xe1\x6d\x7a\x75\x75\x7e\xfd\xa6\x11\xf2\xde\x5c\x5c\x5d\x7c\x37\xbd\xbb\xd8\x86\xbd\xbd\x9b\xde\x5d\x9e\xf3\xdb\x18\x0d\x87\x43\xb8\xbd\x97\x05\x27\x2d\x4e\x05\x7a\x59\x70\xc9\x58\xf1\x6b\xfb\xe0\x16\x9a\xba\x0f\x13\x2a\x92\x4c\xa8\x24\xe6\x4a\x1b\x7d\xc0\x69\xf2\x80\x43\xda\x3b\xd9\xd2\x5e\xe5\x15\xd2\xbe\x37\x18\x36\x4d\xbb\x4e\x47\xbe\x36\x02\xf5\xb6\xc8\xf9\x84\x63\x76\xf7\xe5\x87\x84\xff\x81\x11\x8c\xe1\x24\x04\xe6\x67\x22\xff\x29\x1c\x13\xf9\x5f\x11\xff\x5f\xef\xc1\xfc\x63\x66\x81\x1d\x4f\xfb\xff\xcf\x0e\xba\x74\xd7\x59\x36\x86\x6d\x21\x7e\xb5\x23\xc4\x0a\xfe\x0a\xd5\x2e\xfc\x9f\x77\xe0\x37\x99\x84\xac\x4a\x17\xf0\xc5\x8e\x89\xf8\x38\xfe\xc5\x96\x1f\x04\xe1\x72\xbd\xcc\xd4\x60\x72\x20\x77\x9d\x36\x6d\xf8\x50\x9c\xfc\x4d\xb9\x6b\x6f\xdd\x4f\xd5\x7d\xb3\xb2\xef\x83\x41\x67\x24\x3e\x20\x48\x77\x64\x99\x24\x35\x46\x7a\x45\xf1\x6b\x00\x3f\xa2\xa7\xa8\x10\x39\xb8\x84\x46\x8a\x4a\x3e\x6e\x22\xa8\x19\x0a\x3d\x3a\x9b\x98\xe0\x7e\xc7\x20\x2c\xc5\x9a\x7a\xf4\xac\x54\xf7\x6b\x98\x0b\x0b\xe9\x5a\x89\xa5\x4c\xac\xa7\xc7\x4d\x94\xc1\xb9\x30\x4c\xd6\xe0\x3f\x4b\xb4\x2e\xf4\x82\x22\x71\xa5\xc8\xf3\x35\xcc\x25\x75\xed\x84\xdd\x3d\x7d\x3d\x1a\x81\x75\xb2\x40\x95\xf6\xe1\xeb\xd7\xc3\xaf\xbf\x02\x53\xe6\xd8\x1b\xb4\x6b\x09\xac\x3a\x6a\x6c\x19\x32\x5f\x77\xce\xd1\xbd\xc1\xc2\x2d\xba\x3d\xf8\xf6\x40\x7a\x3d\x90\xd6\xf6\xc2\xc2\x2b\x38\xf9\x34\x20\xbe\x26\x0d\xbb\xf5\x9a\x04\xcc\x2d\x06\x6a\xd4\x3d\x5f\xbf\xb9\xee\xde\x0b\x23\x72\x31\xc3\xde\x98\x27\x1f\x2c\xab\x95\x08\x9d\x26\x29\x05\x8a\x5c\x48\x05\x22\x49\x74\xa9\x1c\x09\x3e\x36\x8d\xf9\x9a\xe2\xfb\x91\x8b\xf4\x78\x48\x20\x92\x04\xad\x8d\xe1\x9e\xb5\x46\xec\x88\x25\x61\x83\x54\x56\xa6\x58\xd3\x0a\x45\x07\xcd\xa1\x39\x40\xac\x64\x9e\x47\x82\x4b\x6d\x69\x93\x19\xc2\xca\x50\x83\x6b\xa5\x4a\x78\xe4\x94\x22\x49\xdb\x82\x56\x20\x20\xd7\x3c\xe7\x62\x1f\x07\x61\xe6\x76\xe0\xe3\x3d\x6d\x4b\x31\x47\xe9\xd5\xa0\x69\xc8\x75\x53\xe5\x9e\x71\xab\xba\x52\x80\x8f\xd2\x3a\x2e\xd2\x89\x4b\x69\xc1\x5b\xb2\x54\xf3\x3e\x14\xba\xe0\x38\xfd\xb9\x74\x16\x82\xf5\xcd\xc5\x3f\x2e\x6e\xaa\x5a\xea\xe5\x4a\x8c\x6d\x54\xa7\x6a\xbd\x21\xb6\xd9\x9d\x10\x05\xbc\x69\x6d\x37\xdf\xb4\x6b\xa7\xc3\xe1\xc2\xab\x3a\x02\x7e\x66\x5b\x2a\x7c\x28\xc5\xed\x2b\xa9\x5a\x07\x76\xfa\x6c\x5c\x66\x4e\x9b\x96\x77\x98\xd6\x8b\x99\x0c\x54\x2b\xad\x36\xe3\xcc\x1e\xdf\x9a\x1c\xf0\x2d\x12\xf5\xa6\x4c\x78\x5f\xd3\x6c\x2e\xac\xdb\xd8\xe8\x1c\x7d\xb7\x5c\xd7\x85\x2d\x73\x67\xb7\xd2\xd8\x76\x9c\xd4\x45\x4c\x96\xc4\x14\x47\x60\xca\x71\xdb\x7d\xdc\xbe\x85\xd3\x2a\x70\x7b\xab\x74\x75\xef\x14\xe0\x81\x6a\x51\x92\xd7\xa3\x30\x85\x57\x00\xf3\xae\x4b\x47\x9e\x41\xa5\xcc\x26\x0f\xcc\x85\xfd\x60\xd9\x01\x42\x26\x98\xc9\xf9\xa5\x72\xdd\xb8\x78\xa9\xe0\x15\xc4\x07\xca\x6f\xf0\xaa\x11\x50\xf6\x24\x8a\x56\x8a\x39\x3a\x84\x0d\x89\x33\xd8\x7a\x45\x84\xbc\x38\x58\x68\x06\xdd\x6e\x9d\x32\x0a\xd4\x48\x60\x5f\x18\x74\x03\xfc\x67\x29\x72\xdb\x1d\x55\x75\x93\x3f\x81\xd3\x9c\xe9\x27\x3b\x55\x35\xe1\x34\xeb\xe8\xb3\x1a\x5a\x90\x46\x44\xf3\x55\x31\x8f\x55\x9e\xa3\xd0\xb4\xe3\x4a\x97\xc1\x47\xf7\x7a\x4c\x1d\x00\x3a\x55\x6d\x94\x09\x99\x97\x06\x3b\x67\xb0\x27\x02\xdb\xd2\x64\x22\x61\x5d\x5a\x04\x9e\x85\x58\xb0\x7a\x89\x0b\xbd\xaa\x99\xfc\x56\x1c\xdf\x35\x8e\xca\x0e\xb6\x32\x29\x8f\x5e\x85\x85\xd2\x8a\x39\xd6\x8c\xa3\x12\x78\x54\xd4\xde\x01\xcd\xaf\x36\x9d\xe3\xea\xf1\x05\x56\xf4\xf4\xfb\x98\xc7\x96\x9e\x77\x4a\xbe\x08\xc4\x85\x5f\xed\x21\x32\xeb\xeb\xb2\x3f\x96\xe2\x5f\xec\x61\xdb\xb0\xfe\x68\x4d\x60\x7f\xc0\x66\xaf\xfd\xbc\xfa\xab\xd5\x43\x9a\x3f\x54\x3d\x92\x8d\xaa\x9f\x31\x71\x1b\x3b\xe5\x82\x8f\x9e\x0a\x83\x0f\x52\x97\x94\xcb\xf1\xbf\x7e\xd8\x50\x95\xd4\x4f\x9b\x51\x2e\x1b\x43\x7d\x96\xbb\x5a\x84\x0f\x46\xbe\x1a\xad\xe5\x24\xcd\xb5\x4b\x98\xf0\x66\xfe\x53\x4e\x8b\xf1\x9f\x99\xe9\x86\xe8\xe1\x74\x41\xe5\x56\x48\x79\xb9\x41\x91\xae\xab\x82\xa3\xef\x0b\x3d\x58\x08\x95\x86\x66\x4f\xa4\xa9\x24\x7a\x6c\xd9\xc4\xa1\x98\x0b\xa9\xda\x7b\xc5\xf8\xd9\x2a\x67\x9f\xb9\xed\xf4\x0e\xf5\xec\x1c\x9a\x74\xea\xa8\x99\xe3\xf6\x0b\xb2\xf0\x96\x67\x6e\x8f\xa7\xc3\x84\x5b\x2b\x5b\x2e\xb9\xd3\x00\xf1\x20\x64\x2e\xa8\xbb\xe5\x0a\x56\xa5\x90\xe4\x28\x94\xff\x74\x88\x99\xd3\x0f\x68\x6c\xfb\x05\x9e\xf3\x6b\x1c\x67\x2b\xd4\xc6\xc7\x20\x8e\x97\x07\x82\x97\x86\x01\x7f\xfc\xb7\xb9\x70\x2e\x98\x57\x4d\xbc\xde\x5d\xa5\xe3\xaf\xca\xa8\x5c\xfb\x65\x7e\xca\x85\x18\xc1\x7c\x0b\xa3\x5a\xdf\xf3\x3b\x79\xee\x1f\xd2\x71\x77\xcd\xf6\xaa\x2a\x24\x83\x40\x9d\xd6\x7d\xc8\x51\x70\x67\x1b\xbf\x23\xc7\x1e\xe2\xb9\x46\x3b\x46\x04\x5f\x7a\xee\x84\x04\x1e\xed\x2e\x30\x4e\xad\x7c\x3b\x36\x43\x54\x20\x1d\x1a\x41\x3d\x2c\x59\x6c\xf8\xd2\x48\x5c\x5a\x26\xc7\xba\x96\xe4\xc8\x81\x70\xf8\xec\x47\x15\x84\x54\xf3\x41\xbb\xe5\xdf\xd7\x62\x48\xe2\x1e\x1b\x31\x44\x2a\xe9\xa4\xc8\xe5\xbf\x70\x23\x67\xe0\x51\x43\xe5\x1f\xee\x31\x16\xb8\x7b\xfc\xa3\x5a\x84\x51\xad\x86\xa7\xd7\xdc\xcb\x1f\xc2\xf1\x8b\xd0\xe9\x6c\x21\x1d\xe8\x62\xe2\xd2\x2e\x42\x98\x8a\x1c\xc0\x89\x33\x93\x6d\xde\xd8\xa3\x0f\xe0\x78\x6f\xdf\x83\xe1\xfd\xf9\x30\x56\xf0\xf7\x6d\x4c\xdf\xdd\x1e\xc2\x0b\xab\xbb\x07\x8b\x55\xd0\x01\xbc\xaa\x48\xda\x15\xa1\x5c\x3e\xa3\x2b\x5e\x6c\xf0\xb8\xe5\x22\x23\x72\xe7\xfd\x5f\xf8\x9a\x40\xde\x8f\x9f\xda\xb1\xe2\x63\x03\x0c\xe3\xc0\x6a\x1a\x18\xed\x83\x27\x66\x5b\x23\xc1\x68\x07\x7e\x9c\xb6\x35\x00\xf4\x1a\xf7\x4b\xdb\xf3\xf0\x4a\xb3\xbb\x03\xef\xb9\xb0\x9e\xcc\x56\xb4\xf6\x1a\xda\x33\x21\x0f\x7a\x1b\xef\x47\xa0\xa5\x3d\x48\x5b\x43\xc9\x4a\x8f\x7e\xd5\xab\x66\x5c\x5f\xf5\xaf\xc2\x41\xe5\xb2\x26\x1b\xb9\x64\xd9\x3c\x9d\x1d\xd2\x46\x08\x6b\xfb\xf3\x2c\xc9\xbc\x8a\x7b\x07\x50\xcf\x9e\xd3\xf5\xb3\x59\x9c\xa9\xc7\xa4\x7b\x00\x95\xa9\xd7\x4a\x6c\xf7\xf8\x72\x92\x15\x70\x9d\xc5\x06\x4c\x83\x08\x7f\x68\xd8\x59\xde\x37\x64\xa1\xc6\x3c\x00\xd6\xdc\x88\x3f\xfb\x07\x4e\x42\x1e\x6d\x00\xd5\x22\xff\x0d\x53\x8a\xfd\x37\x3e\x8a\x65\x91\xe3\xd8\xaf\x8d\x1e\x47\x7f\x4d\x5e\xff\xe5\x6f\x62\xe4\x9f\x01\x46\xbf\xe9\xef\x74\x04\xfe\x86\xc2\x75\x96\x59\x74\xbf\x0f\xd1\xd1\x5f\x03\xd1\x2b\x4e\xe9\x91\xe8\x57\x27\xcd\xff\x5a\xd8\x88\x7d\x11\x74\xf0\x61\x39\x86\x3d\x52\x0d\xa2\xf3\x42\xf9\x1e\x1f\xab\x0e\xad\x66\xe1\x9b\x21\x77\x84\x0a\x4d\xdb\x69\xff\xc4\x7f\x95\xef\x44\xe9\x45\x7a\xad\x14\xb9\x0c\xf5\xc7\x87\x09\x9c\x8c\x7c\x1b\x54\x97\x8a\xdf\x8e\x34\x78\xbc\x4d\xb9\x81\xde\x87\x26\xb5\x63\x78\x7d\xfa\xa7\xd3\x5e\x9d\xa0\x97\xc8\x4b\x09\x06\x0a\xfb\xe9\x36\xc9\x3b\xb3\x8e\x8d\x64\x9d\xf5\xfa\xa5\x91\x10\x5d\xb6\x4e\x56\x8b\x30\xd5\xc4\xa3\xce\xeb\x41\x0a\xd5\x51\xf6\x53\x10\x86\x36\x3f\xc0\x78\x9d\x87\x3f\x9d\x06\x1c\xe4\x8f\x49\x1e\xf3\xb8\x61\x41\x15\x48\x6d\x04\xe8\x77\x8c\xb1\x21\xdc\xdc\xd9\xd1\x3c\x53\xeb\xa3\x4a\x37\x1d\x79\x22\x5c\xb2\x80\x2e\xee\x9b\x51\x56\x44\xfd\x25\x9f\xe6\xac\x90\xbd\x35\x1a\x24\x25\x9b\x4e\x9c\x97\x74\xc6\xb0\x77\x38\xd9\x87\xce\x12\xad\x15\x73\x6c\x42\xf8\x6d\x9e\xa2\xcf\x87\xab\x38\xfe\x22\x0b\x55\x54\xf2\x5f\x18\x62\x4d\xbd\x7e\x8b\x4b\x60\xd0\xdf\x01\xe1\x91\x0d\x95\x6f\x7a\xc6\x5d\x72\x69\x89\xf9\x4d\x5d\x96\xa2\x95\x06\x53\xc8\x24\xe6\x29\xe8\x14\x0d\x0f\xb6\x7f\xb6\x5a\xf9\xdb\x3e\x68\xb8\xfa\xf2\x57\xbd\xfc\xad\x38\xbe\x80\xa6\x64\x82\x6e\x0d\x19\x0a\xbe\xb6\xe3\x34\x14\xc2\x5a\x58\xa2\x50\x52\xcd\xb3\x32\xcf\xd7\xa0\x4d\x8a\x44\xbc\x1a\x68\x52\x49\xa8\xa1\xb4\x68\x2c\xac\x16\x3a\xb4\x7e\x3c\xc7\x28\x0c\x3a\x90\xae\x1f\x3e\xdf\x48\x5b\xe4\x62\x0d\xd2\x51\x9b\x19\x0e\x55\xaf\x12\xab\xbb\x32\x7c\xe1\x46\x47\x71\x37\x73\x7b\x1c\x7d\x36\x93\x3b\xbf\xa6\xa7\x66\x5a\x0f\x93\xbf\x66\x42\xdf\x7c\xd8\x6a\x66\xef\xd8\x0a\x35\x53\x74\xbd\xb1\x6a\xe6\x61\x5e\xe1\xa7\x66\x06\xae\xcd\x93\x78\x81\x83\x5c\x85\xc0\x4f\x5b\x39\x99\xb9\x0c\x49\xd9\x5f\x97\xab\xc0\xf9\xa9\xef\x0d\xd1\x1b\x59\x60\xa9\xea\xb5\xeb\xf7\xc8\x48\x70\xf7\xb8\xa6\x2e\xc1\xcb\xaf\xd6\x46\xf9\x17\x1f\xef\x71\x7d\xa0\x77\x0a\xe9\xa9\x06\x57\xb5\x34\x31\x4f\xfa\xb5\x67\xaa\x83\x8a\x0b\x39\x19\x9d\x81\xfc\xa6\x8e\x10\x3b\x3d\x90\xc7\xc7\x71\xcf\xfa\xfa\x47\xf9\x29\xba\x75\xe5\x0d\x5b\xeb\xbd\x06\x47\xf1\x2a\x1b\xc3\x90\xc3\xb4\x9f\xda\xff\x17\x00\x00\xff\xff\xa5\x33\x4d\xfa\x34\x2d\x00\x00") +var _call_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x57\x5f\x6f\xe3\xb8\x11\x7f\x96\x3f\xc5\x34\x0f\x17\x0b\xd1\x4a\x71\x8a\x6e\x51\x67\x7d\x80\x1b\x24\xbb\x01\xf6\xb2\x81\xe3\xf4\xb0\x08\x82\x82\x96\x46\x16\x77\x69\x52\x20\xa9\xd8\xee\x9e\xbf\x7b\x31\xd4\x1f\x4b\x8a\x93\x4d\x9f\x8a\xf3\x93\x45\xfe\xe6\x37\x7f\x38\x33\x1c\x46\x11\xfc\xa6\x12\x9e\xf2\x98\x59\xae\xa4\x81\x0b\x95\x6f\x35\x5f\x66\x16\xce\x4e\x47\xff\x80\x79\x86\xf0\x5d\xb0\xad\x95\x30\x2d\x6c\xa6\xb4\x19\x44\x51\x17\xf4\x77\x07\x5a\xaa\x77\x68\x33\xd4\x58\xac\xda\xc8\x79\xc6\x0d\xa4\x5c\x20\x70\x03\x39\xd3\x16\x54\x0a\xb6\x87\x17\x7c\xa1\x99\xde\x86\x83\x28\x2a\x65\x0e\x6e\x13\x43\xaa\x11\xc1\xa8\xd4\xae\x99\xc6\x31\x6c\x55\x01\x31\x93\xa0\x31\xe1\xc6\x6a\xbe\x28\x2c\x02\xb7\xc0\x64\x12\x29\x0d\x2b\xf2\x6c\x4b\x94\xdc\x42\x21\x13\xd4\x4e\xb5\x45\xbd\x32\xb5\x1d\x1f\x6f\xee\xe1\x33\x1a\x83\x1a\x3e\xa2\x44\xcd\x04\xdc\x16\x0b\xc1\x63\xf8\xcc\x63\x94\x06\x81\x19\xc8\x69\xc5\x64\x98\xc0\xc2\xd1\x91\xe0\x15\x99\x72\x57\x99\x02\x57\xaa\x90\x89\x0b\x61\x00\xc8\xc9\x72\x78\x42\x6d\xb8\x92\xf0\xd7\x5a\x55\x45\x18\x80\xd2\x44\x32\x64\x96\x1c\xd0\xa0\x72\x92\xf3\x81\xc9\x2d\x08\x66\xf7\xa2\x6f\x08\xc8\xde\xef\x04\xb8\x74\x6a\x32\x95\x23\xd8\x8c\x59\xf2\x7a\xcd\x85\x80\x05\x42\x61\x30\x2d\x44\x40\x6c\x8b\xc2\xc2\xef\xd7\xf3\x4f\x5f\xee\xe7\x30\xbd\xf9\x0a\xbf\x4f\x67\xb3\xe9\xcd\xfc\xeb\x39\xac\xb9\xcd\x54\x61\x01\x9f\xb0\xa4\xe2\xab\x5c\x70\x4c\x60\xcd\xb4\x66\xd2\x6e\x41\xa5\xc4\xf0\xdb\xe5\xec\xe2\xd3\xf4\x66\x3e\xfd\xe7\xf5\xe7\xeb\xf9\x57\x50\x1a\xae\xae\xe7\x37\x97\x77\x77\x70\xf5\x65\x06\x53\xb8\x9d\xce\xe6\xd7\x17\xf7\x9f\xa7\x33\xb8\xbd\x9f\xdd\x7e\xb9\xbb\x0c\xe1\x0e\xc9\x2a\x24\xf9\x9f\xc7\x3c\x75\xa7\xa7\x11\x12\xb4\x8c\x0b\x53\x47\xe2\xab\x2a\xc0\x64\xaa\x10\x09\x64\xec\x09\x41\x63\x8c\xfc\x09\x13\x60\x10\xab\x7c\xfb\xe6\x43\x25\x2e\x26\x94\x5c\x3a\x9f\x5f\x4c\x48\xb8\x4e\x41\x2a\x1b\x80\x41\x84\x0f\x99\xb5\xf9\x38\x8a\xd6\xeb\x75\xb8\x94\x45\xa8\xf4\x32\x12\x25\x9d\x89\x7e\xdd\x9f\x55\x2b\xe1\x13\xd4\xce\xba\x54\xab\x15\xa0\xcd\x22\xab\x59\x8c\xda\x44\x5c\x5a\xd4\x92\x89\x66\x21\x66\x42\xfc\xbb\xfc\x08\xbf\x19\x18\x52\xf1\x45\xa7\xa3\x68\xf4\x37\x3f\x1c\x34\x45\x4a\x8e\xca\x84\x8e\x45\x2b\xc7\xab\xca\x8c\xae\x2a\x34\xc1\x27\x14\x2a\x5f\xa1\xb4\xb5\x39\xc4\x7b\xa5\xd9\x0a\xe7\x8e\x9b\xf2\xc0\x38\x11\x89\x6b\xb7\x09\x29\xed\x02\xa9\xe6\x72\x09\x2b\xb4\x99\x4a\x0c\x58\x05\x1a\x73\xa5\x6d\x95\x39\xc0\x65\xaa\xf4\xca\x65\xb8\x0b\xde\x82\x12\xa5\x76\x03\x56\x68\x0c\x5b\xa2\xab\x2a\x46\x64\xd2\xb0\xd8\xba\x14\xfe\x31\x00\x00\xa7\xca\x58\x16\x7f\x1f\xc3\xc3\x8f\xdd\x63\x30\xf0\x34\x3e\xa1\xb6\x98\x5c\x28\x49\xca\xed\x18\x8e\x8e\x82\x81\x67\xd5\xd4\xc4\x9c\x8f\x21\x2d\xa4\x63\x18\x66\xb8\xf1\xe1\xc7\xc0\xf3\x9e\x98\x06\x63\x35\x4c\xe0\xe8\xe8\xbc\xfa\xe6\x30\x81\xd3\x00\x04\x4c\x20\xc3\x4d\x28\x50\x2e\x6d\x46\x9b\x3c\x05\x92\x0c\x4d\xb1\xa0\x0a\x91\xcb\xe1\x69\x00\x67\x3e\x4c\x26\x13\x38\x3a\xdd\x1c\x95\x94\x1e\xc9\x9f\x11\x7e\x37\xf0\x3c\x0a\xe7\xf0\x1c\x38\x7c\x00\x71\x0e\xfc\x64\x72\x56\xa1\x48\x53\xac\x12\x84\x09\xf5\x30\x83\xd7\xd2\xb6\xc8\x87\x9c\x98\x03\x18\xbd\xf7\x89\xc9\x23\x1b\x4f\x26\x70\xe7\xd4\x86\x74\xf6\x17\x19\xd3\x17\x2a\xc1\x21\x91\xf8\xa5\xba\x81\xe7\x69\xb4\x85\x96\xe4\xd3\xf9\xc0\xdb\x05\x2e\x50\x29\x2b\x84\x6d\x79\x2f\xd4\x32\x80\x64\x41\x86\x40\xf5\x23\x6b\x04\x4a\x98\x80\xcd\xb8\x09\x9b\xd0\x56\xde\x37\x38\x0a\x01\xe1\x7e\x85\x51\x5b\xbc\xa6\x70\xa7\xff\x8c\x23\x57\xf9\xd0\xef\x60\x89\xa6\x0b\x7a\x10\x28\xdf\x8d\x1e\xcb\x05\x17\x51\x6a\xae\x29\x97\x98\xf4\x15\xd1\xef\x55\x61\x78\x78\xec\x08\xec\x06\x6f\x14\x0d\xf3\xc2\x64\x43\xfa\xbb\x37\xb7\x14\xae\x22\xa9\xd1\x74\x43\x19\xdb\x4d\x3f\x94\x51\x04\xb7\x1a\x73\xea\xe0\xaa\xa0\xce\x5b\x25\xb2\x4b\xf7\x4e\xc0\x4b\x36\x98\xf4\xfc\xb3\xdb\x1c\xc7\x2e\xc1\xed\x26\xa4\x8f\xa0\xb3\x4d\x87\xef\xb6\xad\xfa\x84\x1b\xb2\xc0\xe5\x83\xdf\x45\x59\x35\xae\xff\xd4\x28\xab\x7a\x98\x27\x26\x0a\xa7\xe9\xf8\x74\x73\x0c\x27\x4e\x9f\x5b\x0b\xad\x2a\x33\x6d\x38\x7a\xdf\x93\x59\x32\x53\x12\x57\x32\x0b\xbe\xa4\xcc\x25\xd1\x25\x33\xfe\xeb\x92\xf7\x06\x93\xf1\x61\x49\xda\x7a\x4d\x9a\xcb\xbc\xb0\xe3\x8e\x3f\x6e\xa9\x07\x53\x85\x2d\x71\x7b\x58\xb9\xd4\xc2\xed\x3a\xd9\xdc\x4b\x87\xd3\x3a\x8b\xfe\xf2\x72\x0a\x96\xe7\xd6\x64\xdb\x0b\x0c\x6f\xd6\x87\x5a\x2b\xfd\x06\x7d\x25\xee\x90\x3e\xb7\xb3\xd7\x07\x28\x0c\x3a\x65\xe4\xff\xff\x4a\xdf\xc8\xbc\xe0\x40\x07\xde\xa1\x85\x5f\x7e\x39\xb0\x7d\x84\x1b\x8c\x0b\xaa\x16\xa8\xfb\xf3\x11\xfc\xf1\x47\xad\xb6\x3c\x1e\xaa\x78\xd7\x42\xbb\xa6\x25\x28\xd0\x62\x17\xda\x32\x6b\xb0\x77\xc1\x75\x3d\x17\x99\x94\x4b\x26\xf8\x7f\xb0\xb2\xc4\x6f\xd7\x2f\xd2\xe5\xd2\x2a\x5f\x77\x51\xf5\xfb\x60\xd5\xc4\x0e\x15\xa5\xc3\x87\x4b\xb4\xf3\x6d\x8e\x43\xff\x50\x61\x96\x89\xd7\x00\xaf\xb4\x5a\x0d\xfd\x03\xc5\xd9\xc3\xcd\xd5\x33\x54\x95\xf2\x3d\xe0\x35\xad\x3e\xc3\xba\xb2\xec\x16\x56\x23\xf1\x91\x99\xa1\xdf\xaa\xad\xe3\xd1\xfb\xe3\x17\xcb\xa1\x91\xfa\x17\x35\x82\xa1\xdf\x4b\x9c\x6e\x50\x28\x52\x65\xc7\x98\xbc\xa0\xbb\x62\xe9\x56\xf6\x01\xd5\xfd\x1b\xa3\xdb\x87\xeb\xd3\xdb\x70\xdb\x3f\xbc\x59\x79\xc8\xff\xbf\xab\xcc\xc5\xa0\x6a\x60\x30\x39\x74\x06\xa5\x89\xd5\x49\x10\xec\xf9\x69\x3c\xd3\x5e\x17\x63\x8f\xe0\x92\x96\x0f\xdc\xa5\x15\xfc\x67\xb7\xa6\xb3\xb5\x2e\xb8\x76\x62\xed\x35\x7c\x71\xbb\x43\xbf\xab\xa3\x6a\x29\x2f\x30\xd6\xc6\x76\xbb\x46\xdb\x3e\x07\xa3\x12\x72\x36\x1e\x5f\xcc\x2e\xa7\xf3\xcb\x63\xea\x02\x07\x77\xce\x8e\x0f\x59\x0f\xfb\x86\x50\x4a\xa9\x67\x90\xdd\x2b\xf7\x3e\x9d\xf5\xbb\x09\x8c\xfe\xf4\x83\x88\x17\x45\x50\x37\x39\x7a\xad\x68\x64\x16\x0d\x3d\x57\x28\x65\xd5\xe2\x1b\xc6\x34\x62\xd3\xe8\x4d\x53\xb9\x83\x42\x82\x86\x6b\x1a\xef\x39\x8a\x04\x14\xbd\x5b\x69\x34\xfd\x66\x94\x74\x84\x06\x35\x27\x46\x37\x8d\x87\xe5\x93\x83\x13\xa9\xe4\x31\xda\x2d\xa4\xc8\x6c\xa1\x91\x86\xf8\x9c\x19\x03\x2b\x64\x92\xcb\x65\x5a\x08\xb1\x05\xa5\x13\x24\xf2\xb2\xe3\x1a\x47\x68\x15\x8d\xf9\xda\xc0\x3a\x53\x90\x28\x79\x5c\x8d\xf6\xb9\x46\x7a\x45\x06\xf0\xad\x30\x96\xde\x9a\xb9\x60\x5b\xe0\x36\x1c\x78\xb5\x53\xed\xf9\x8a\x42\xb0\x9f\xd4\x15\xdd\x1e\xae\x37\x7b\x9e\xb7\x9f\x93\xea\x1c\x0a\x68\xb9\x99\x8f\xdc\x32\x7d\xb9\xe5\x66\x20\xaa\x72\x27\x28\x87\xf0\x6a\x02\xda\x77\x32\xb7\xde\x4c\x39\x75\x75\xd7\xab\xe5\x04\xd3\xae\x79\xb7\xd3\x4c\x27\x6e\xc7\x7d\xb9\xf5\x66\x1c\x69\x55\x9e\xdb\x70\xa5\x32\xee\x14\x50\x69\x25\x5f\xb5\x7d\xe2\xab\xd2\x1e\x97\x14\x0d\xdc\x7d\x05\xed\x07\x06\x05\xe7\x3b\x6e\xe9\xb9\x5e\xc6\xa8\x7e\x8a\xa4\x30\x2c\x17\x1e\xbe\xe3\xf6\xf1\x79\x3a\x7b\x9e\xe7\x55\x35\xd5\xc2\xd1\xf2\xae\xe2\xdf\x53\xbc\x34\x18\x79\x2d\x23\xf8\xe4\xf4\x1c\xf8\x87\xb6\x40\xfd\x80\x02\x7e\x72\x52\xab\x6c\xef\x3f\xf0\xc7\xba\xcf\x36\x57\x77\x6f\xdf\x6f\x1b\x54\xbf\x70\x1c\x64\xe0\xed\x06\xbb\xff\x06\x00\x00\xff\xff\xaa\x8e\xb0\x0b\x71\x12\x00\x00") func call_tracerJsBytes() ([]byte, error) { return bindataRead( @@ -146,7 +146,7 @@ func call_tracerJs() (*asset, error) { return a, nil } -var _evmdis_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x57\xdf\x6f\xda\xca\x12\x7e\x86\xbf\x62\x94\x27\x50\x29\x60\x63\x08\x38\x27\x47\xe2\xa6\xf4\x1c\xae\xd2\x24\x02\x72\x8f\x2a\x94\x87\x05\xc6\xb0\xaa\xf1\x5a\xbb\x6b\x72\xb8\x55\xfe\xf7\xab\xd9\x59\x03\xf9\x75\xdb\x4a\xa7\x0f\x3b\xb5\x77\xbe\x6f\xbe\x9d\x19\xcf\x92\x56\x0b\xae\x54\xbe\xd7\x72\xbd\xb1\x10\xb6\x83\x73\x98\x6d\x10\xd6\xea\x23\xda\x0d\x6a\x2c\xb6\x30\x2c\xec\x46\x69\x53\x6d\xb5\x60\xb6\x91\x06\x12\x99\x22\x48\x03\xb9\xd0\x16\x54\x02\xf6\x85\x7f\x2a\x17\x5a\xe8\x7d\xb3\xda\x6a\x31\xe6\xcd\x6d\x62\x48\x34\x22\x18\x95\xd8\x47\xa1\x31\x86\xbd\x2a\x60\x29\x32\xd0\xb8\x92\xc6\x6a\xb9\x28\x2c\x82\xb4\x20\xb2\x55\x4b\x69\xd8\xaa\x95\x4c\xf6\x44\x29\x2d\x14\xd9\x0a\xb5\x0b\x6d\x51\x6f\x4d\xa9\xe3\x8f\x9b\x7b\xb8\x46\x63\x50\xc3\x1f\x98\xa1\x16\x29\xdc\x15\x8b\x54\x2e\xe1\x5a\x2e\x31\x33\x08\xc2\x40\x4e\x6f\xcc\x06\x57\xb0\x70\x74\x04\xfc\x4c\x52\xa6\x5e\x0a\x7c\x56\x45\xb6\x12\x56\xaa\xac\x01\x28\x49\x39\xec\x50\x1b\xa9\x32\xe8\x94\xa1\x3c\x61\x03\x94\x26\x92\x9a\xb0\x74\x00\x0d\x2a\x27\x5c\x1d\x44\xb6\x87\x54\xd8\x23\xf4\x27\x12\x72\x3c\xf7\x0a\x64\xe6\xc2\x6c\x54\x8e\x60\x37\xc2\xd2\xa9\x1f\x65\x9a\xc2\x02\xa1\x30\x98\x14\x69\x83\xd8\x16\x85\x85\xbf\xc6\xb3\x3f\x6f\xef\x67\x30\xbc\xf9\x0a\x7f\x0d\x27\x93\xe1\xcd\xec\xeb\x05\x3c\x4a\xbb\x51\x85\x05\xdc\x21\x53\xc9\x6d\x9e\x4a\x5c\xc1\xa3\xd0\x5a\x64\x76\x0f\x2a\x21\x86\x2f\xa3\xc9\xd5\x9f\xc3\x9b\xd9\xf0\x5f\xe3\xeb\xf1\xec\x2b\x28\x0d\x9f\xc7\xb3\x9b\xd1\x74\x0a\x9f\x6f\x27\x30\x84\xbb\xe1\x64\x36\xbe\xba\xbf\x1e\x4e\xe0\xee\x7e\x72\x77\x3b\x1d\x35\x61\x8a\xa4\x0a\x09\xff\xe3\x9c\x27\xae\x7a\x1a\x61\x85\x56\xc8\xd4\x94\x99\xf8\xaa\x0a\x30\x1b\x55\xa4\x2b\xd8\x88\x1d\x82\xc6\x25\xca\x1d\xae\x40\xc0\x52\xe5\xfb\x9f\x2e\x2a\x71\x89\x54\x65\x6b\x77\xe6\x77\x1b\x12\xc6\x09\x64\xca\x36\xc0\x20\xc2\x6f\x1b\x6b\xf3\xb8\xd5\x7a\x7c\x7c\x6c\xae\xb3\xa2\xa9\xf4\xba\x95\x32\x9d\x69\xfd\xde\xac\x12\x27\xee\xb6\x2b\x69\x66\x5a\x2c\x51\x83\x46\x5b\xe8\xcc\x80\x29\x92\x84\xfc\x2c\xc8\x2c\x51\x7a\xeb\xda\x04\x12\xad\xb6\x20\xc0\x92\x2f\x58\x05\x39\x6a\xda\xf4\x14\x1f\x8d\xdd\xa7\x4e\xe6\x4a\x1a\x61\x0c\x6e\x17\xe9\xbe\x59\xfd\x5e\xad\x18\x2b\x96\xdf\x62\x98\x7f\x57\xb9\x89\x61\xfe\xf0\xf4\xd0\xa8\x56\x2b\x59\x5e\x98\x0d\x9a\x18\xbe\xb7\x63\x68\x37\x20\x88\x21\x68\x40\xe8\xd6\x8e\x5b\x23\xb7\x76\xdd\xda\x73\xeb\xb9\x5b\xfb\x6e\x1d\xb8\x35\x68\xb3\x61\x74\xc0\x6e\x01\xfb\x05\xec\x18\xb0\x67\xc8\x9e\xa1\x8f\xc3\x81\x42\x8e\x14\x72\xa8\x90\x63\x85\xcc\xd2\x61\x97\x88\x59\x22\x66\xe9\x32\x4b\x97\x59\xba\xec\xd2\x65\x96\xae\x17\xdc\x75\xe7\xe9\x32\x4b\xf7\x9c\x9f\x98\xa5\xcb\x2c\x3d\x3e\x72\x8f\x01\x3d\x7f\x44\x06\xf4\x58\x7c\x8f\x01\x3d\x06\xf4\x19\xd0\xe7\xb0\xfd\x90\x9f\x3a\x6c\x98\xa5\xcf\x61\xfb\x3d\x36\x1c\xb6\xcf\x2c\x7d\x66\x19\xb0\xf8\x41\xe0\xf6\x06\x1c\x6f\xc0\xf1\x06\x3e\xab\x65\x5a\x7d\x5e\xdb\x3e\xb1\xed\xd0\xdb\x8e\xb7\x91\xb7\x5d\x6f\x7d\xe6\xdb\x3e\xf5\x6d\x9f\xfb\xb6\xe7\x3b\xd4\xc9\xf3\x05\x9e\x2f\xf0\x7c\x81\xe7\x0b\x3c\x5f\x59\xc9\xb2\x94\x65\x2d\x7d\x31\x03\x5f\xcd\xc0\x97\x33\xf0\xf5\x0c\x7c\x41\x03\x5f\xd1\xc0\x97\x34\xf0\x35\x0d\x42\xcf\x17\xf6\x63\x08\xc9\x0e\x62\xe8\x34\x20\xe8\xb4\x63\x88\xc8\x06\x31\x74\xc9\x86\x31\xf4\xc8\x76\x62\x38\x27\x1b\xc5\xd0\x27\xdb\x8d\x61\x40\x96\xf8\xa8\x6b\x3b\x44\x48\x8c\x1d\x52\x48\x94\x1d\x92\x48\x9c\x11\x69\x24\xd2\x88\x44\x12\x6b\x44\x2a\x89\x36\x22\x99\xc4\x1b\x45\xac\x23\xea\xb2\x8e\xa8\xc7\x3a\xa2\x73\xd6\x41\xdd\xe7\x00\x03\xd6\x41\xfd\x47\x3a\xa8\x01\x49\x87\xeb\x40\xd2\xe1\x7a\x90\x74\xb8\x2e\x24\x4a\xea\x43\xa7\xc3\x75\x22\x91\x52\x2f\x3a\x1d\xae\x1b\x89\xd6\xf5\x23\xf1\xfa\x8e\x0c\x7a\x81\xb7\xa1\xb7\x1d\x6f\x23\x67\xc3\xc8\x7f\x45\x91\xff\x8c\x22\xff\x1d\x45\x1d\xbf\xef\xfd\xdc\x47\xf0\x44\xdf\x79\xab\x05\x1a\x4d\x91\x5a\x1a\xfe\x32\xdb\xa9\x6f\x34\x9e\x37\x98\x81\x48\x53\x37\xc7\x54\xbe\x54\x2b\x34\x3c\x1f\x17\x88\x19\x48\x8b\x5a\xd0\x05\xa1\x76\xa8\xe9\x6e\x2c\x27\x93\xa3\x23\x4c\x22\x33\x91\x96\xc4\x7e\x86\xd2\x60\x92\xd9\xba\x59\xad\xf0\xfb\x18\x92\x22\x5b\xd2\xe8\xaa\xd5\xe1\xbb\xa7\x00\xbb\x91\xa6\xe9\x46\xd2\xbc\xfd\xd0\x54\xb9\xb9\x80\x52\x67\x22\xde\x92\x49\xd4\x62\x69\x0b\x91\x02\xfe\x8d\xcb\xc2\xcd\x42\x95\x80\xc8\xbc\x72\x48\x78\xe0\x57\x1c\xfe\x24\x6a\xaa\xd6\x0d\x58\x2d\x28\x78\x19\xc2\x58\xcc\x4f\x23\xd0\xb5\x81\x3b\xd4\xfb\x92\xcb\x5d\x83\x14\xf2\x3f\x5f\x7c\x38\x24\x6a\xc2\xbd\xc9\x5c\xad\x54\x76\x42\x43\xa2\xc5\x16\xe1\xf2\xf4\x74\xc7\xff\x36\x53\xcc\xd6\x76\x03\x1f\x21\x78\xb8\xa8\x7a\x04\x6a\xad\x34\x5c\x42\xaa\xd6\xcd\x35\xda\x11\x3d\xd6\xea\x17\xd5\x4a\x45\x26\x50\x73\xbb\x4c\x5f\x71\xdc\xf3\x33\xf7\xea\xec\x01\x2e\x19\x4a\x9e\x4f\x80\xa9\x41\x20\x80\xa7\xf9\x84\xb9\xdd\xd4\xea\x70\x79\x2a\xc5\xc7\xf7\x74\x2a\xa7\x4b\x05\x2e\xf9\xa9\xa2\xf2\x18\xe8\x1f\x11\xa8\xbc\x69\xd5\x4d\xb1\x5d\xa0\xae\xd5\x1b\x6e\x7b\x45\x84\x10\xc3\x73\x7e\xde\x2b\xcb\x3c\x7f\x70\xcf\x4f\x24\xc9\xa9\x77\x8a\xa9\xb6\xe5\xc9\x7f\x87\xb6\x8f\xee\xce\x9e\x6b\xdc\xa9\x1c\x2e\xe1\xe0\x38\x7f\x05\xe1\x64\x11\x22\x51\xba\x46\x28\x09\x97\xd0\xbe\x00\x09\xbf\xf1\xd9\xfc\x0d\x36\x67\xb6\xa6\xca\x1f\x2e\x40\x7e\xf8\x50\x77\xa0\x8a\x7f\xcb\x1a\x9b\xe4\xea\x72\xc4\x09\xc9\x11\xbf\xd5\x64\xbd\x69\xd5\xd4\x6a\x99\xad\x6b\x41\xaf\xee\x72\x5f\x79\xa2\xc5\x3c\x4a\xbb\x64\x7f\x97\x12\xef\x54\xf7\x67\x58\x0a\x83\x70\x76\x35\xbc\xbe\x3e\x8b\xe1\xf8\x70\x75\xfb\x69\x74\x16\x1f\x0e\x29\x33\x63\xe9\xe7\x2b\x97\xf8\x24\x6e\xa7\xde\xdc\x89\xb4\xc0\xdb\x84\xeb\x7d\x70\x97\xff\xc5\xd7\xde\xd1\x2b\x6f\x2e\xe0\xfc\x6c\x2d\x8c\x6b\x87\x17\x80\xf6\xbb\x00\xab\xde\xf2\x0f\x9e\xa7\xe1\x39\xc4\x31\xbd\x85\x0a\x4f\x50\x2f\x30\x32\xcb\x0b\x7b\xc0\x6c\x71\xab\xf4\xbe\x69\xe8\x87\x4f\xcd\xe7\xa4\x71\x48\xce\x07\x7f\xee\x17\x14\xc7\x5e\xcf\x8a\x34\x7d\xbe\xc7\x73\xe4\x9d\x4d\x95\x73\x4e\xe6\xbe\x77\x4e\x3e\x02\xd7\x02\xec\xe7\xa3\x2d\x34\x8a\x6f\x17\xc7\x8a\x7e\x1a\x5d\x8f\xfe\x18\xce\x46\xcf\x2a\x3b\x9d\x0d\x67\xe3\x2b\x7e\xf5\xe3\xda\x86\xbf\x54\xdb\xd7\x9d\x70\x3c\x87\x3b\x06\xbc\x6a\xc1\xb7\x5b\xe0\x97\x7b\xe0\x97\x9a\xe0\x58\xd0\x7f\xa2\xa2\xff\xbf\xa4\xff\x74\x4d\x27\xa3\xd9\xfd\xe4\xe6\xa4\x74\xf4\xe7\xca\x4f\x7c\x33\xde\xf5\xed\xba\x05\xaf\xdc\x79\x7c\xf9\x2b\xee\x8d\xc6\x57\x85\x6d\xb8\xd0\x1f\x4a\xd6\x77\xf4\x4e\x67\xb7\x77\xc7\xde\xbb\x1f\x5f\x8d\x0f\x43\xe5\x47\x31\xda\x0d\x68\xbf\xc3\xfa\xef\xfb\x2f\x77\x9f\x46\xd3\x99\x67\x2a\x33\x9b\x2f\x0f\x9f\xe9\x1a\xed\xdd\x55\xed\x64\x06\xca\xa4\x9c\x7f\xd2\xdc\x51\x9a\xcb\xe9\x77\x40\xa7\x98\x1d\xe0\xcf\x6e\x0e\xf8\x08\xed\xbf\xbb\x78\xe4\x3a\x0e\xf7\x97\x05\xf3\x37\x98\x23\x3e\xd6\xf5\xd9\x45\x7a\x3c\xdd\xf3\x3b\x88\xf1\xd5\xca\x53\xf5\xa9\xfa\xbf\x00\x00\x00\xff\xff\x51\x4b\xdc\x7e\x62\x10\x00\x00") +var _evmdis_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x97\x5f\x6f\xda\xca\x12\xc0\x9f\xe1\x53\x8c\xf2\x04\x2a\x05\x6c\x0c\x01\xe7\xe4\x48\xdc\x94\xf4\xe4\x2a\x4d\x22\x20\xf7\xa8\x42\x79\x58\x60\x0c\xab\x1a\xaf\xb5\xbb\x26\x87\x5b\xe5\xbb\x5f\xcd\xce\x1a\xc8\xbf\xdb\x56\x6a\x1f\x76\x6a\xef\xcc\x6f\xfe\x7a\x97\xb4\x5a\x70\xa1\xf2\x9d\x96\xab\xb5\x85\xb0\x1d\x9c\xc2\x74\x8d\xb0\x52\x1f\xd1\xae\x51\x63\xb1\x81\x61\x61\xd7\x4a\x9b\x6a\xab\x05\xd3\xb5\x34\x90\xc8\x14\x41\x1a\xc8\x85\xb6\xa0\x12\xb0\x2f\xf4\x53\x39\xd7\x42\xef\x9a\xd5\x56\x8b\x6d\xde\xdc\x26\x42\xa2\x11\xc1\xa8\xc4\x3e\x0a\x8d\x31\xec\x54\x01\x0b\x91\x81\xc6\xa5\x34\x56\xcb\x79\x61\x11\xa4\x05\x91\x2d\x5b\x4a\xc3\x46\x2d\x65\xb2\x23\xa4\xb4\x50\x64\x4b\xd4\xce\xb5\x45\xbd\x31\x65\x1c\x9f\x6f\xee\xe1\x1a\x8d\x41\x0d\x9f\x31\x43\x2d\x52\xb8\x2b\xe6\xa9\x5c\xc0\xb5\x5c\x60\x66\x10\x84\x81\x9c\xde\x98\x35\x2e\x61\xee\x70\x64\x78\x49\xa1\x4c\x7c\x28\x70\xa9\x8a\x6c\x29\xac\x54\x59\x03\x50\x52\xe4\xb0\x45\x6d\xa4\xca\xa0\x53\xba\xf2\xc0\x06\x28\x4d\x90\x9a\xb0\x94\x80\x06\x95\x93\x5d\x1d\x44\xb6\x83\x54\xd8\x83\xe9\x4f\x14\xe4\x90\xf7\x12\x64\xe6\xdc\xac\x55\x8e\x60\xd7\xc2\x52\xd6\x8f\x32\x4d\x61\x8e\x50\x18\x4c\x8a\xb4\x41\xb4\x79\x61\xe1\xef\xab\xe9\x5f\xb7\xf7\x53\x18\xde\x7c\x85\xbf\x87\xe3\xf1\xf0\x66\xfa\xf5\x0c\x1e\xa5\x5d\xab\xc2\x02\x6e\x91\x51\x72\x93\xa7\x12\x97\xf0\x28\xb4\x16\x99\xdd\x81\x4a\x88\xf0\x65\x34\xbe\xf8\x6b\x78\x33\x1d\xfe\xeb\xea\xfa\x6a\xfa\x15\x94\x86\xcb\xab\xe9\xcd\x68\x32\x81\xcb\xdb\x31\x0c\xe1\x6e\x38\x9e\x5e\x5d\xdc\x5f\x0f\xc7\x70\x77\x3f\xbe\xbb\x9d\x8c\x9a\x30\x41\x8a\x0a\xc9\xfe\xc7\x35\x4f\x5c\xf7\x34\xc2\x12\xad\x90\xa9\x29\x2b\xf1\x55\x15\x60\xd6\xaa\x48\x97\xb0\x16\x5b\x04\x8d\x0b\x94\x5b\x5c\x82\x80\x85\xca\x77\x3f\xdd\x54\x62\x89\x54\x65\x2b\x97\xf3\xbb\x03\x09\x57\x09\x64\xca\x36\xc0\x20\xc2\x1f\x6b\x6b\xf3\xb8\xd5\x7a\x7c\x7c\x6c\xae\xb2\xa2\xa9\xf4\xaa\x95\x32\xce\xb4\xfe\x6c\x56\x89\x89\xdb\xcd\x52\x9a\xa9\x16\x0b\xd4\xa0\xd1\x16\x3a\x33\x60\x8a\x24\x21\x3d\x0b\x32\x4b\x94\xde\xb8\x31\x81\x44\xab\x0d\x08\xb0\xa4\x0b\x56\x41\x8e\x9a\x36\x3d\xe2\xa3\xb1\xbb\xd4\x85\xb9\x94\x46\x18\x83\x9b\x79\xba\x6b\x56\xbf\x57\x2b\xc6\x8a\xc5\xb7\x18\x66\xdf\x55\x6e\x62\x98\x3d\x3c\x3d\x34\xaa\xd5\x4a\x96\x17\x66\x8d\x26\x86\xef\xed\x18\xda\x0d\x08\x62\x08\x1a\x10\xba\xb5\xe3\xd6\xc8\xad\x5d\xb7\xf6\xdc\x7a\xea\xd6\xbe\x5b\x07\x6e\x0d\xda\x2c\xd8\x3a\x60\xb5\x80\xf5\x02\x56\x0c\x58\x33\x64\xcd\xd0\xfb\x61\x47\x21\x7b\x0a\xd9\x55\xc8\xbe\x42\xa6\x74\x58\x25\x62\x4a\xc4\x94\x2e\x53\xba\x4c\xe9\xb2\x4a\x97\x29\x5d\x1f\x70\xd7\xe5\xd3\x65\x4a\xf7\x94\x9f\x98\xd2\x65\x4a\x8f\x53\xee\xb1\x41\xcf\xa7\xc8\x06\x3d\x0e\xbe\xc7\x06\x3d\x36\xe8\xb3\x41\x9f\xdd\xf6\x43\x7e\xea\xb0\x60\x4a\x9f\xdd\xf6\x7b\x2c\xd8\x6d\x9f\x29\x7d\xa6\x0c\x38\xf8\x41\xe0\xf6\x06\xec\x6f\xc0\xfe\x06\xbe\xaa\x65\x59\x7d\x5d\xdb\xbe\xb0\xed\xd0\xcb\x8e\x97\x91\x97\x5d\x2f\x7d\xe5\xdb\xbe\xf4\x6d\x5f\xfb\xb6\xe7\xed\xfb\xe4\x79\x81\xe7\x05\x9e\x17\x78\x5e\xe0\x79\x65\x27\xcb\x56\x96\xbd\xf4\xcd\x0c\x7c\x37\x03\xdf\xce\xc0\xf7\x33\xf0\x0d\x0d\x7c\x47\x03\xdf\xd2\xc0\xf7\x34\x08\x3d\x2f\xec\xc7\x10\x92\x1c\xc4\xd0\x69\x40\xd0\x69\xc7\x10\x91\x0c\x62\xe8\x92\x0c\x63\xe8\x91\xec\xc4\x70\x4a\x32\x8a\xa1\x4f\xb2\x1b\xc3\x80\x24\xf1\x68\x6a\x3b\x04\x24\x62\x87\x22\x24\x64\x87\x42\x24\x66\x44\x31\x12\x34\xa2\x20\x89\x1a\x51\x94\x84\x8d\x28\x4c\xe2\x46\x11\xc7\x11\x75\x39\x8e\xa8\xc7\x71\x44\xa7\x1c\x07\x4d\x9f\x33\x18\x70\x1c\x34\x7f\x14\x07\x0d\x20\xc5\xe1\x26\x90\xe2\x70\x33\x48\x71\xb8\x29\x24\x24\xcd\xa1\x8b\xc3\x4d\x22\x41\x69\x16\x5d\x1c\x6e\x1a\x09\xeb\xe6\x91\xb8\x7e\x22\x83\x5e\xe0\x65\xe8\x65\xc7\xcb\xc8\xc9\x30\xf2\x5f\x51\xe4\x3f\xa3\xc8\x7f\x47\x51\xc7\xef\x7b\x3d\xf7\x11\x3c\xd1\x77\xde\x6a\x81\x46\x53\xa4\x96\x0e\x7f\x99\x6d\xd5\x37\x3a\x9e\xd7\x98\x81\x48\x53\x77\x8e\xa9\x7c\xa1\x96\x68\xf8\x7c\x9c\x23\x66\x20\x2d\x6a\x41\x17\x84\xda\xa2\xa6\xbb\xb1\x3c\x99\x1c\x8e\x6c\x12\x99\x89\xb4\x04\xfb\x33\x94\x0e\x26\x99\xad\x9a\xd5\x0a\xbf\x8f\x21\x29\xb2\x05\x1d\x5d\xb5\x3a\x7c\xf7\x08\xb0\x6b\x69\x9a\xee\x48\x9a\xb5\x1f\x9a\x2a\x37\x67\x50\xc6\x99\x88\xb7\xc2\x24\xb4\x58\xd8\x42\xa4\x80\xff\xe0\xa2\x70\x67\xa1\x4a\x40\x64\x3e\x72\x48\xf8\xc0\xaf\x38\xfb\x23\xaf\xa9\x5a\x35\x60\x39\x27\xe7\xa5\x0b\x63\x31\x3f\xf6\x40\xd7\x06\x6e\x51\xef\x4a\x96\xbb\x06\xc9\xe5\x7f\xbe\x78\x77\x48\x68\xb2\x7b\x93\x5c\xad\x54\xb6\x42\x43\xa2\xc5\x06\xe1\xfc\x38\xbb\xc3\x7f\x9b\x29\x66\x2b\xbb\x86\x8f\x10\x3c\x9c\x55\xbd\x05\x6a\xad\x34\x9c\x43\xaa\x56\xcd\x15\xda\x11\x3d\xd6\xea\x67\xd5\x4a\x45\x26\x50\x73\xbb\x8c\xaf\x38\xf6\xec\xc4\xbd\x3a\x79\x80\x73\x36\x25\xcd\x27\xc0\xd4\x20\x90\x81\xc7\x7c\xc2\xdc\xae\x6b\x75\x38\x3f\x0e\xc5\xfb\xf7\x38\x95\xd3\xa5\x02\xe7\xfc\x54\x51\x79\x0c\xf4\x8f\x00\x2a\x6f\x5a\x75\x53\x6c\xe6\xa8\x6b\xf5\x86\xdb\x5e\x12\x10\x62\x78\xce\xe7\xbd\xb2\xcd\xb3\x07\xf7\xfc\x44\x21\xb9\xe8\x5d\xc4\xd4\xdb\x32\xf3\x3f\xa1\xed\xbd\xbb\xdc\x73\x8d\x5b\x95\xc3\x39\xec\x15\x67\xaf\x4c\xb8\x58\x64\x91\x28\x5d\x23\x2b\x09\xe7\xd0\x3e\x03\x09\x7f\x70\x6e\xfe\x06\x9b\x31\xad\xa9\xf2\x87\x33\x90\x1f\x3e\xd4\x9d\x51\xc5\xbf\xe5\x18\x9b\xa4\xea\x6a\xc4\x05\xc9\x11\xbf\xd5\x64\xbd\x69\xd5\xc4\x6a\x99\xad\x6a\x41\xaf\xee\x6a\x5f\x79\xa2\xc5\x3c\x4a\xbb\x60\x7d\x57\x12\xaf\x54\xf7\x39\x2c\x84\x41\x38\xb9\x18\x5e\x5f\x9f\xc4\x70\x78\xb8\xb8\xfd\x34\x3a\x89\xf7\x49\xca\xcc\x58\xfa\xf9\xca\x2d\x3e\xf2\xdb\xa9\x37\xb7\x22\x2d\xf0\x36\xe1\x7e\xef\xd5\xe5\x7f\xf1\xb5\x76\xf4\x4a\x9b\x1b\x38\x3b\x59\x09\xe3\xc6\xe1\x85\x41\xfb\x5d\x03\xab\xde\xd2\x0f\x9e\x97\xe1\xb9\x89\x23\xbd\x65\x15\x1e\x59\xbd\xb0\x91\x59\x5e\xd8\xbd\xcd\x06\x37\x4a\xef\x9a\x86\x7e\xf8\xd4\x7c\x4d\x1a\xfb\xe2\x7c\xf0\x79\xbf\x40\x1c\x66\x3d\x2b\xd2\xf4\xf9\x1e\x9f\x23\xef\x6c\xaa\x9c\x6b\x32\xf3\xb3\x73\xf4\x11\xb8\x11\x60\x3d\xef\x6d\xae\x51\x7c\x3b\x3b\x74\xf4\xd3\xe8\x7a\xf4\x79\x38\x1d\x3d\xeb\xec\x64\x3a\x9c\x5e\x5d\xf0\xab\x1f\xf7\x36\xfc\xa5\xde\xbe\x9e\x84\x43\x1e\x2e\x0d\x78\x35\x82\x6f\x8f\xc0\x2f\xcf\xc0\x2f\x0d\xc1\xa1\xa1\xbf\xa3\xa3\xff\xbf\xa5\xbf\xbb\xa7\xe3\xd1\xf4\x7e\x7c\x73\xd4\x3a\xfa\x73\xe5\x27\xbe\x19\xaf\xfa\x76\xdf\x82\x57\xea\x7c\x7c\xf9\x2b\xee\x8d\xc1\x57\x85\x6d\x38\xd7\x1f\x4a\xea\x3b\xf1\x4e\xa6\xb7\x77\x87\xd9\x1b\x5d\x5f\x7e\x1a\x4d\xa6\xe3\xfb\x8b\xa9\x4f\xe1\x47\x8e\xda\x0d\x68\xbf\x83\xfe\xf7\xfd\x97\x3b\xa2\x79\x52\x59\xde\x7c\xb1\xff\x56\x57\x68\xef\x2e\x6a\x47\x07\xa1\x4c\xca\x43\x50\x9a\x3b\xaa\x75\x79\x04\xee\xad\x53\xcc\xf6\xe6\xcf\xae\x0f\xf8\x08\xed\x7f\xba\x78\x60\x1d\x4e\xf8\x97\x5d\xf3\xd7\x98\x03\x1f\x9a\xfb\xec\x36\x3d\x64\xf7\xfc\x22\x62\xfb\x6a\xe5\xa9\xfa\x54\xfd\x5f\x00\x00\x00\xff\xff\x08\xfc\xe7\xba\x67\x10\x00\x00") func evmdis_tracerJsBytes() ([]byte, error) { return bindataRead( @@ -206,7 +206,7 @@ func opcount_tracerJs() (*asset, error) { return a, nil } -var _prestate_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x57\xdd\x6f\xdb\x38\x12\x7f\x96\xfe\x8a\x41\x5f\x6c\xa3\xae\xdc\x66\x81\x3d\xc0\xb9\x1c\xa0\xba\x6e\x1b\x20\x9b\x04\xb6\x7b\xb9\xdc\x62\x1f\x28\x72\x24\x73\x4d\x93\x02\x49\xd9\xf1\x15\xf9\xdf\x0f\x43\x7d\xf8\xa3\x49\x93\xdd\x37\x9b\x1c\xfe\xe6\xfb\x37\xa3\xd1\x08\x26\xa6\xdc\x59\x59\x2c\x3d\x9c\xbd\xff\xf0\x0f\x58\x2c\x11\x0a\xf3\x0e\xfd\x12\x2d\x56\x6b\x48\x2b\xbf\x34\xd6\xc5\xa3\x11\x2c\x96\xd2\x41\x2e\x15\x82\x74\x50\x32\xeb\xc1\xe4\xe0\x4f\xe4\x95\xcc\x2c\xb3\xbb\x24\x1e\x8d\xea\x37\x4f\x5e\x13\x42\x6e\x11\xc1\x99\xdc\x6f\x99\xc5\x31\xec\x4c\x05\x9c\x69\xb0\x28\xa4\xf3\x56\x66\x95\x47\x90\x1e\x98\x16\x23\x63\x61\x6d\x84\xcc\x77\x04\x29\x3d\x54\x5a\xa0\x0d\xaa\x3d\xda\xb5\x6b\xed\xf8\x72\xfd\x0d\xae\xd0\x39\xb4\xf0\x05\x35\x5a\xa6\xe0\xb6\xca\x94\xe4\x70\x25\x39\x6a\x87\xc0\x1c\x94\x74\xe2\x96\x28\x20\x0b\x70\xf4\xf0\x33\x99\x32\x6f\x4c\x81\xcf\xa6\xd2\x82\x79\x69\xf4\x10\x50\x92\xe5\xb0\x41\xeb\xa4\xd1\xf0\x4b\xab\xaa\x01\x1c\x82\xb1\x04\xd2\x67\x9e\x1c\xb0\x60\x4a\x7a\x37\x00\xa6\x77\xa0\x98\xdf\x3f\x7d\x45\x40\xf6\x7e\x0b\x90\x3a\xa8\x59\x9a\x12\xc1\x2f\x99\x27\xaf\xb7\x52\x29\xc8\x10\x2a\x87\x79\xa5\x86\x84\x96\x55\x1e\xee\x2e\x17\x5f\x6f\xbe\x2d\x20\xbd\xbe\x87\xbb\x74\x36\x4b\xaf\x17\xf7\xe7\xb0\x95\x7e\x69\x2a\x0f\xb8\xc1\x1a\x4a\xae\x4b\x25\x51\xc0\x96\x59\xcb\xb4\xdf\x81\xc9\x09\xe1\xb7\xe9\x6c\xf2\x35\xbd\x5e\xa4\x1f\x2f\xaf\x2e\x17\xf7\x60\x2c\x7c\xbe\x5c\x5c\x4f\xe7\x73\xf8\x7c\x33\x83\x14\x6e\xd3\xd9\xe2\x72\xf2\xed\x2a\x9d\xc1\xed\xb7\xd9\xed\xcd\x7c\x9a\xc0\x1c\xc9\x2a\xa4\xf7\x2f\xc7\x3c\x0f\xd9\xb3\x08\x02\x3d\x93\xca\xb5\x91\xb8\x37\x15\xb8\xa5\xa9\x94\x80\x25\xdb\x20\x58\xe4\x28\x37\x28\x80\x01\x37\xe5\xee\xd5\x49\x25\x2c\xa6\x8c\x2e\x82\xcf\xcf\x16\x24\x5c\xe6\xa0\x8d\x1f\x82\x43\x84\x7f\x2e\xbd\x2f\xc7\xa3\xd1\x76\xbb\x4d\x0a\x5d\x25\xc6\x16\x23\x55\xc3\xb9\xd1\xbf\x92\x98\x30\x4b\x8b\xce\x33\x8f\x0b\xcb\x38\x5a\x30\x95\x2f\x2b\xef\xc0\x55\x79\x2e\xb9\x44\xed\x41\xea\xdc\xd8\x75\xa8\x14\xf0\x06\xb8\x45\xe6\x11\x18\x28\xc3\x99\x02\x7c\x40\x5e\x85\xbb\x3a\xd2\xa1\x5c\x2d\xd3\x8e\xf1\x70\x9a\x5b\xb3\x26\x5f\x2b\xe7\xe9\x87\x73\xb8\xce\x14\x0a\x28\x50\xa3\x93\x0e\x32\x65\xf8\x2a\x89\xbf\xc7\xd1\x81\x31\x54\x27\xc1\xc3\x46\x28\xd4\xc6\x16\x7b\x16\x21\xab\xa4\x12\x52\x17\x49\x1c\xb5\xd2\x63\xd0\x95\x52\xc3\x38\x40\x28\x63\x56\x55\x99\x72\x6e\xaa\x60\xfb\x9f\xc8\x7d\x0d\xe6\x4a\xe4\x32\xa7\xe2\x60\xdd\xad\x37\xe1\xaa\xd3\x6b\x32\x92\x4f\xe2\xe8\x08\x66\x0c\x79\xa5\x83\x3b\x7d\x26\x84\x1d\x82\xc8\x06\xdf\xe3\x28\xda\x30\x4b\x58\x70\x01\xde\x7c\xc5\x87\x70\x39\x38\x8f\xa3\x48\xe6\xd0\xf7\x4b\xe9\x92\x16\xf8\x77\xc6\xf9\x1f\x70\x71\x71\x11\x9a\x3a\x97\x1a\xc5\x00\x08\x22\x7a\x4a\xac\xbe\x89\x32\xa6\x98\xe6\x38\x86\xde\xfb\x87\x1e\xbc\x05\x91\x25\x05\xfa\x8f\xf5\x69\xad\x2c\xf1\x66\xee\xad\xd4\x45\xff\xc3\xaf\x83\x61\x78\xa5\x4d\x78\x03\x8d\xf8\xb5\xe9\x84\xeb\x7b\x6e\x44\xb8\x6e\x6c\xae\xa5\x26\x46\x34\x42\x8d\x94\xf3\xc6\xb2\x02\xc7\xf0\xfd\x91\xfe\x3f\x92\x57\x8f\x71\xf4\x78\x14\xe5\x79\x2d\xf4\x4c\x94\x1b\x08\x40\xed\x6d\x57\xe7\x85\xa4\x4e\x3d\x4c\x40\xc0\xfb\x59\x12\xe6\xad\x29\x27\x49\x58\xe1\xee\xe5\x4c\xd0\x85\x14\x0f\xdd\xc5\x0a\x77\x83\xf3\xf8\xd9\x14\x25\x8d\xd1\xbf\x4b\xf1\xf0\xda\x7c\x9d\xbc\x39\x8a\xeb\x9c\xa4\xf6\xf6\x0e\x06\x27\x71\xb4\xe8\x2a\xe5\xa9\xdc\xa5\xde\x98\x15\x11\xd7\x92\xe2\xa3\x54\x08\x89\x29\x29\x5b\xae\x66\x8e\x0c\x51\x83\xf4\x68\x19\x51\xa7\xd9\xa0\xa5\xa9\x01\x16\x7d\x65\xb5\xeb\xc2\x98\x4b\xcd\x54\x0b\xdc\x44\xdd\x5b\xc6\xeb\x9e\xa9\xcf\x0f\x62\xc9\xfd\x43\x88\x62\xf0\x6e\x34\x82\xd4\x03\xb9\x08\xa5\x91\xda\x0f\x61\x8b\xa0\x11\x05\x35\xbe\x40\x51\x71\x1f\xf0\x7a\x1b\xa6\x2a\xec\xd5\xcd\x4d\x14\x19\x9e\x9a\x8a\x26\xc1\x41\xf3\x0f\x83\x81\x6b\xb3\x09\x23\x2e\x63\x7c\x05\x4d\xc3\x19\x2b\x0b\xa9\xe3\x26\x9c\x47\xcd\x46\x16\x25\x04\x1c\xcc\x0a\xb9\xa2\x24\xd2\xc9\x47\xa6\xe0\x02\x32\x59\x5c\x6a\x7f\x92\xbc\x3a\xe8\xed\xd3\xc1\x1f\x49\xd3\x3c\x89\x23\xc2\xeb\x9f\x0d\x86\xf0\xe1\xd7\xae\x22\xbc\x21\x28\x78\x19\xcc\x9b\xe7\xa1\xe2\xd3\x62\x78\xfa\x59\x50\x43\x1d\xfc\x36\x68\x4d\x5c\x95\x51\x3a\x6a\x3f\x43\x1c\x8f\xbb\xf8\xfc\x27\xb8\xc7\xbe\xb5\xb8\x4d\x68\x12\x26\xc4\xf3\xa0\x75\x8a\x3e\x21\xb7\xb8\x26\x56\xa7\x2c\x70\xa6\x14\xda\x9e\x83\xc0\x19\xc3\xa6\x9c\x42\xbe\x70\x5d\xfa\x5d\xcb\xf5\x9e\xd9\x02\xbd\x7b\xd9\xb0\x80\xf3\xee\x5d\x4b\x81\x21\x14\xbb\x12\xe1\xe2\x02\x7a\x93\xd9\x34\x5d\x4c\x7b\x4d\x1b\x8d\x46\x70\x87\x61\x13\xca\x94\xcc\x84\xda\x81\x40\x85\x1e\x6b\xbb\x8c\x0e\x21\xea\x28\x61\x48\x2b\x0d\x2d\x1b\xf8\x20\x9d\x97\xba\x80\x9a\x29\xb6\x34\x57\x1b\xb8\xd0\x23\x9c\x55\x8e\xaa\xf5\x64\x08\x79\x43\x1b\x85\x45\xe2\x15\xe2\xff\xd0\x6e\x4c\xc9\x6e\x03\xc9\xa5\x75\x1e\x4a\xc5\x38\x26\x84\xd7\x19\xf3\x7c\x7e\x9b\x4e\x26\xd5\xb3\xd0\x82\x01\x68\x3f\xe0\x98\xa2\x01\x49\xea\x1d\xf4\x5b\x8c\x41\x1c\x45\xb6\x95\x3e\xc0\x3e\xdf\x53\x82\xf3\x58\x1e\x12\x02\x2d\x16\xb8\x41\xa2\xd0\xc0\x06\xf5\x30\x24\x5d\xff\xfe\xad\x99\xbe\xe8\x92\x38\xa2\x77\x07\x7d\xad\x4c\x71\xdc\xd7\xa2\x0e\x0b\xaf\xac\xa5\xfc\x77\x14\x9c\x53\x8f\xff\x59\x39\x4f\x31\xb5\x14\x9e\x86\x2d\x9e\x22\xc9\x40\x89\x34\x6d\x07\x3f\x92\x21\xcd\xad\x30\x27\x48\x5d\x33\xa5\xea\x6d\xae\x34\x1e\xb5\x97\x4c\xa9\x1d\xe5\x61\x6b\x69\x8d\xa1\xc5\x65\x08\x4e\x92\x54\x60\x9c\x20\x2a\x35\x57\x95\xa8\xcb\x20\xd4\x71\x83\xe7\x82\xcd\xc7\xfb\xcf\x1a\x9d\x63\x05\x26\x54\x49\xb9\x7c\x68\x36\x48\x0d\xbd\x9a\xe4\xfa\x83\x5e\xd2\x19\x79\x4c\x31\xca\x14\x49\x5b\x64\x44\xd3\xa9\x10\x16\x9d\xeb\x0f\x1a\xce\xe9\x32\x7b\xb7\x44\x4d\xc1\x07\x8d\x5b\xe8\x56\x13\xc6\x39\xad\x6a\x62\x08\x4c\x08\xa2\xb6\x93\x35\x22\x8e\x22\xb7\x95\x9e\x2f\x21\x68\x32\xe5\xbe\x17\x07\x4d\xfd\x73\xe6\x10\xde\x4c\xff\xb3\x98\xdc\x7c\x9a\x4e\x6e\x6e\xef\xdf\x8c\xe1\xe8\x6c\x7e\xf9\xdf\x69\x77\xf6\x31\xbd\x4a\xaf\x27\xd3\x37\xe3\x30\x9b\x9f\x70\xc8\x9b\xd6\x05\x52\xe8\x3c\xe3\xab\xa4\x44\x5c\xf5\xdf\x1f\xf3\xc0\xde\xc1\x28\xca\x2c\xb2\xd5\xf9\xde\x98\xba\x41\x1b\x1d\x2d\xe5\xc2\x05\x3c\x1b\xac\xf3\xe7\xad\x99\x34\xf2\xfd\x96\xc8\xf7\xab\x48\xa0\x8a\x97\xed\x38\xfb\xcb\x86\x84\xde\x61\x7c\x35\x06\xc7\x14\x6d\xc0\xf2\x7f\xf4\xe5\x92\xe7\x0e\xfd\x10\x50\x0b\xb3\x25\xe6\xeb\x50\xeb\x9b\x06\xf7\x20\x64\x1f\x06\x35\x83\xde\xe4\x2d\x32\x49\x13\xda\x8f\xb2\x67\x4f\xca\xa2\x16\x70\xd1\xe2\xbf\x0d\x4f\x5f\x11\xab\xb3\x26\x58\x27\x2a\x7e\x39\x59\xf2\xc2\xfd\x1a\xd7\xc6\xee\x9a\x89\x74\xe0\xe2\xcf\x03\x9b\x5e\x5d\x75\x25\x45\x7f\xa8\xce\xba\x83\x4f\xd3\xab\xe9\x97\x74\x31\x3d\x92\x9a\x2f\xd2\xc5\xe5\xa4\x3e\xfa\xcb\xb5\xf7\xe1\xd5\xb5\xd7\x9b\xcf\x17\x37\xb3\x69\x6f\xdc\xfc\xbb\xba\x49\x3f\xf5\x7e\x50\xd8\x2c\x82\x3f\xeb\x5e\x6f\xee\x8c\x15\x7f\xa7\x09\x0e\x96\xb2\x9c\x3d\xb5\x93\x05\x76\xe7\xbe\x3a\xf9\xe6\x01\xa6\x5b\x62\xce\xeb\xef\xbe\x28\xbc\x7f\x92\x8a\x1f\xe3\xc7\xf8\xff\x01\x00\x00\xff\xff\x0a\x4c\x81\x61\x8d\x10\x00\x00") +var _prestate_tracerJs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x57\xdf\x6f\xdb\x38\x12\x7e\x96\xfe\x8a\x41\x5f\x6c\x5f\x5d\xb9\xcd\x02\x7b\x80\x73\x39\x40\x75\xdd\xc6\x40\x36\x09\x6c\xe7\x7a\xb9\xc5\x3e\x50\xe4\x48\xe6\x9a\x26\x05\x92\xb2\xe3\x2b\xf2\xbf\x1f\x86\x92\xfc\xab\xf9\xb5\xf7\x66\x91\xc3\x6f\x66\x3e\xce\x7c\x1c\x0f\x06\x30\x32\xe5\xd6\xca\x62\xe1\xe1\xec\xe3\xa7\xbf\xc3\x7c\x81\x50\x98\x0f\xe8\x17\x68\xb1\x5a\x41\x5a\xf9\x85\xb1\x2e\x1e\x0c\x60\xbe\x90\x0e\x72\xa9\x10\xa4\x83\x92\x59\x0f\x26\x07\x7f\x62\xaf\x64\x66\x99\xdd\x26\xf1\x60\x50\x9f\x79\x72\x9b\x10\x72\x8b\x08\xce\xe4\x7e\xc3\x2c\x0e\x61\x6b\x2a\xe0\x4c\x83\x45\x21\x9d\xb7\x32\xab\x3c\x82\xf4\xc0\xb4\x18\x18\x0b\x2b\x23\x64\xbe\x25\x48\xe9\xa1\xd2\x02\x6d\x70\xed\xd1\xae\x5c\x1b\xc7\xb7\xeb\x3b\xb8\x42\xe7\xd0\xc2\x37\xd4\x68\x99\x82\xdb\x2a\x53\x92\xc3\x95\xe4\xa8\x1d\x02\x73\x50\xd2\x8a\x5b\xa0\x80\x2c\xc0\xd1\xc1\xaf\x14\xca\xac\x09\x05\xbe\x9a\x4a\x0b\xe6\xa5\xd1\x7d\x40\x49\x91\xc3\x1a\xad\x93\x46\xc3\x2f\xad\xab\x06\xb0\x0f\xc6\x12\x48\x97\x79\x4a\xc0\x82\x29\xe9\x5c\x0f\x98\xde\x82\x62\x7e\x7f\xf4\x0d\x84\xec\xf3\x16\x20\x75\x70\xb3\x30\x25\x82\x5f\x30\x4f\x59\x6f\xa4\x52\x90\x21\x54\x0e\xf3\x4a\xf5\x09\x2d\xab\x3c\x7c\x9f\xcc\x2f\x6f\xee\xe6\x90\x5e\xdf\xc3\xf7\x74\x3a\x4d\xaf\xe7\xf7\xe7\xb0\x91\x7e\x61\x2a\x0f\xb8\xc6\x1a\x4a\xae\x4a\x25\x51\xc0\x86\x59\xcb\xb4\xdf\x82\xc9\x09\xe1\xb7\xf1\x74\x74\x99\x5e\xcf\xd3\xcf\x93\xab\xc9\xfc\x1e\x8c\x85\xaf\x93\xf9\xf5\x78\x36\x83\xaf\x37\x53\x48\xe1\x36\x9d\xce\x27\xa3\xbb\xab\x74\x0a\xb7\x77\xd3\xdb\x9b\xd9\x38\x81\x19\x52\x54\x48\xe7\x5f\xe7\x3c\x0f\xb7\x67\x11\x04\x7a\x26\x95\x6b\x99\xb8\x37\x15\xb8\x85\xa9\x94\x80\x05\x5b\x23\x58\xe4\x28\xd7\x28\x80\x01\x37\xe5\xf6\xcd\x97\x4a\x58\x4c\x19\x5d\x84\x9c\x9f\x2d\x48\x98\xe4\xa0\x8d\xef\x83\x43\x84\x7f\x2c\xbc\x2f\x87\x83\xc1\x66\xb3\x49\x0a\x5d\x25\xc6\x16\x03\x55\xc3\xb9\xc1\x3f\x93\x98\x30\x4b\x8b\xce\x33\x8f\x73\xcb\x38\x5a\x30\x95\x2f\x2b\xef\xc0\x55\x79\x2e\xb9\x44\xed\x41\xea\xdc\xd8\x55\xa8\x14\xf0\x06\xb8\x45\xe6\x11\x18\x28\xc3\x99\x02\x7c\x40\x5e\x85\xbd\x9a\xe9\x50\xae\x96\x69\xc7\x78\x58\xcd\xad\x59\x51\xae\x95\xf3\xf4\xc3\x39\x5c\x65\x0a\x05\x14\xa8\xd1\x49\x07\x99\x32\x7c\x99\xc4\x3f\xe2\xe8\x20\x18\xaa\x93\x90\x61\x63\x14\x6a\x63\x83\x1d\x8b\x90\x55\x52\x09\xa9\x8b\x24\x8e\x5a\xeb\x21\xe8\x4a\xa9\x7e\x1c\x20\x94\x31\xcb\xaa\x4c\x39\x37\x55\x88\xfd\x4f\xe4\xbe\x06\x73\x25\x72\x99\x53\x71\xb0\xdd\xae\x37\x61\x6b\xe7\xd7\x64\x64\x9f\xc4\xd1\x11\xcc\x10\xf2\x4a\x87\x74\xba\x4c\x08\xdb\x07\x91\xf5\x7e\xc4\x51\xb4\x66\x96\xb0\xe0\x02\xbc\xb9\xc4\x87\xb0\xd9\x3b\x8f\xa3\x48\xe6\xd0\xf5\x0b\xe9\x92\x16\xf8\x77\xc6\xf9\x1f\x70\x71\x71\x11\x9a\x3a\x97\x1a\x45\x0f\x08\x22\x7a\xca\xac\xde\x89\x32\xa6\x98\xe6\x38\x84\xce\xc7\x87\x0e\xbc\x07\x91\x25\x05\xfa\xcf\xf5\x6a\xed\x2c\xf1\x66\xe6\xad\xd4\x45\xf7\xd3\xaf\xbd\x7e\x38\xa5\x4d\x38\x03\x8d\xf9\xb5\xd9\x19\xd7\xfb\xdc\x88\xb0\xdd\xc4\x5c\x5b\x8d\x8c\x68\x8c\x1a\x2b\xe7\x8d\x65\x05\x0e\xe1\xc7\x23\x7d\x3f\x52\x56\x8f\x71\xf4\x78\xc4\xf2\xac\x36\x7a\x86\xe5\x06\x02\x50\x7b\xbb\xab\xf3\x42\x52\xa7\x1e\x5e\x40\xc0\x7b\xe9\x12\x66\x6d\x28\x27\x97\xb0\xc4\xed\xeb\x37\x41\x1b\x52\x3c\xec\x36\x96\xb8\xed\x9d\xc7\xcf\x5e\x51\xd2\x04\xfd\xbb\x14\x0f\x6f\xbd\xaf\x93\x33\x47\xbc\xce\xc8\x6a\x1f\x6f\xaf\x77\xc2\xa3\x45\x57\x29\x4f\xe5\x2e\xf5\xda\x2c\x49\xb8\x16\xc4\x8f\x52\x81\x12\x53\xd2\x6d\xb9\x5a\x39\x32\x44\x0d\xd2\xa3\x65\x24\x9d\x66\x8d\x96\x5e\x0d\xb0\xe8\x2b\xab\xdd\x8e\xc6\x5c\x6a\xa6\x5a\xe0\x86\x75\x6f\x19\xaf\x7b\xa6\x5e\x3f\xe0\x92\xfb\x87\xc0\x62\xc8\xee\x27\x52\x02\x05\xd4\x5d\x4f\x65\x4f\x85\x1a\x0a\x83\x5c\x4f\x72\xf0\x0f\xa1\x6f\xa9\xf9\x73\xb4\x1f\x8c\x56\xdb\x7e\x70\x6f\x91\xcb\x32\x68\x49\x73\xf1\xcd\x99\x05\x73\xba\xe3\xeb\xc4\x4a\x53\x56\xf4\x94\x88\x64\xe7\xe7\xa8\x07\x29\xd0\xc4\x9b\x10\x6b\x4d\x62\x1c\x30\x52\x0f\x64\x0c\xa5\x91\xda\xf7\x61\x83\xa0\x11\x05\x09\x95\x40\x51\x71\x1f\x02\xe8\xac\x99\xaa\xb0\x53\x8b\x11\x49\x7a\x38\x6a\x2a\x7a\xb9\x0e\xc4\xaa\x1f\x08\x5d\x99\x75\x78\x92\x33\xc6\x97\xd0\x08\x84\xb1\xb2\x90\x3a\x7e\x36\x30\x02\x6e\x42\x6b\x8a\x8e\x56\x3e\x33\x05\x17\x90\xc9\x62\xa2\xfd\x49\xb1\xd5\x45\xd2\x1e\xed\xfd\x91\x34\xcd\x9e\x38\x12\xe8\xee\x59\xaf\x0f\x9f\x7e\xdd\x55\xb0\x37\x04\x05\xaf\x83\x79\xf3\x3c\x54\x7c\x5a\xbc\x4f\x1f\x0b\x6e\x48\x71\xde\x07\xaf\x89\xab\x32\x2a\x9f\x3a\xcf\xc0\xe3\xb1\xea\x9c\xbf\x80\x7b\x9c\x5b\x8b\xdb\x50\x93\x30\x21\x0e\x41\xdb\xcf\x82\xb9\x3b\x87\x02\xfe\x06\xcd\xd7\xad\x95\xfc\x27\xa7\xf5\x15\x7e\x41\x6e\x71\x45\x95\x45\xb7\xc4\x99\x52\x68\x3b\x0e\x82\x06\xf6\x9b\xf6\x08\xf7\x89\xab\xd2\x6f\xdb\xb7\xcb\x33\x5b\xa0\x77\xaf\x07\x1e\x70\x3e\x7c\x68\x25\x3d\x50\xb5\x2d\xa9\x2b\xa0\x33\x9a\x8e\xd3\xf9\xb8\xd3\x34\xc6\x60\x00\xdf\x31\x4c\x76\x99\x92\x99\x50\x5b\x10\xa8\xd0\x63\x1d\x97\xd1\x81\xc2\x9d\xc4\xf5\x69\x44\xa3\xe1\x09\x1f\xa4\xf3\x52\x17\x50\x37\xd4\x86\xe6\x84\x5d\x73\xac\x09\xb0\x22\x2a\x4e\x1f\x55\x6f\x68\x42\xb2\x48\x3a\x49\xef\x59\x90\x0f\xa6\xe4\x6e\xa2\xca\xa5\x75\x1e\x4a\xc5\x38\x86\x7e\xda\x05\xf3\xfc\xfd\x37\xca\x44\xae\xa7\x41\x52\x02\xd0\xfe\xc1\x66\x8a\x1e\x7c\x72\xef\xa0\xdb\x62\xf4\xe2\x28\xb2\xad\xf5\x01\xf6\xf9\x5e\xe2\x9c\xc7\xf2\x50\xe0\x68\x50\xc2\x35\xd2\x93\x10\xd4\xad\x7e\xdc\xc9\xd7\xbf\x7e\x6b\xa6\x09\x74\x49\x1c\xd1\xb9\x03\x9d\x52\xa6\xd8\xeb\x14\xf5\xbd\xa8\x69\xe1\x95\xb5\x07\xca\x02\x32\x27\x0d\xf8\xb3\x72\x9e\x38\xb5\x44\x4f\xa3\x7e\x2f\xeb\xdb\x2b\xf2\xd6\xbc\xba\xf5\x74\x5a\x1a\x8f\xda\x4b\xa6\xd4\x96\xee\x61\x63\x69\x2c\xa3\x41\xac\x0f\x4e\x92\x55\x50\xa4\x60\x2a\x35\x57\x95\xa8\xcb\x20\xd4\x79\x83\xe7\x42\xcc\xc7\xf3\xdc\x0a\x9d\x63\x05\x26\x54\x49\xb9\x7c\x68\x26\x62\x0d\x9d\x5a\xb4\xbb\xbd\xce\x73\xda\xa8\x4c\x91\xb4\x45\x46\xcf\x4e\x2a\x84\x45\xe7\xba\xbd\x03\xb9\xac\x6b\x74\x81\x9a\xc8\x07\x8d\x1b\xd8\x8d\x5a\x8c\x73\x1a\x3d\x45\x1f\x98\x10\x24\x7d\x27\x63\x51\x1c\x45\x6e\x23\x3d\x5f\x40\xf0\x64\xca\x7d\x2f\xf6\x9a\xfa\xe7\xcc\x21\xbc\x1b\xff\x7b\x3e\xba\xf9\x32\x1e\xdd\xdc\xde\xbf\x1b\xc2\xd1\xda\x6c\xf2\x9f\xf1\xe9\xda\x65\x3a\xbb\xdc\xad\x7d\x4e\xaf\xd2\xeb\xd1\xf8\xdd\x30\xcc\x1f\x4f\x24\xe9\x4d\x9b\x16\x05\xe1\x3c\xe3\xcb\xa4\x44\x5c\x76\x3f\x1e\x6b\xc3\x3e\xe9\x28\xca\x2c\xb2\xe5\xf9\x3e\xc0\xba\x69\x1b\x1f\xad\x4c\xc3\x05\x3c\x4b\xe0\xf9\xf3\xd1\x8c\x1a\xfb\x6e\x2b\xfe\xfb\x71\x2b\xc8\xc7\xeb\x71\x9c\xfd\xe5\x40\x42\x3f\x31\xbe\x1c\x82\x63\x8a\xa6\x7c\xf9\x5f\xfa\x77\x96\xe7\x0e\x7d\x1f\x50\x0b\xb3\x21\x35\xdc\xa1\xd6\x3b\x0d\xee\x01\x65\x9f\x7a\xb5\xea\xde\xe4\x2d\x32\x59\x13\xda\xcf\xb6\x67\x4f\xda\xa2\x16\x70\xd1\xe2\xbf\x0f\x47\xdf\xc0\xd5\x59\x43\xd6\x89\x8b\x5f\x4e\x06\xd9\xb0\xbf\xc2\x95\xb1\xdb\xe6\x15\x3b\x48\xf1\x65\x62\xd3\xab\xab\x5d\x49\xd1\x07\xd5\xd9\x6e\xe1\xcb\xf8\x6a\xfc\x2d\x9d\x8f\x8f\xac\x66\xf3\x74\x3e\x19\xd5\x4b\x7f\xb9\xf6\x3e\xbd\xb9\xf6\x3a\xb3\xd9\xfc\x66\x3a\xee\x0c\x9b\xaf\xab\x9b\xf4\x4b\xe7\x27\x87\xcd\xb0\xfb\x52\x47\x7b\xf3\xdd\x58\xf1\xff\x34\xc1\xc1\xe0\x99\xb3\xa7\xe6\xce\xa0\xf8\xdc\x57\x27\xff\xeb\x80\xe9\x56\xac\xf3\xfa\xbf\x6d\x14\xce\x3f\x29\xcf\x8f\xf1\x63\xfc\xbf\x00\x00\x00\xff\xff\x86\x1b\x97\xf6\x71\x11\x00\x00") func prestate_tracerJsBytes() ([]byte, error) { return bindataRead( diff --git a/node/cn/tracers/internal/tracers/prestate_tracer.js b/node/cn/tracers/internal/tracers/prestate_tracer.js index 9187cb8fb..e999ba5e3 100644 --- a/node/cn/tracers/internal/tracers/prestate_tracer.js +++ b/node/cn/tracers/internal/tracers/prestate_tracer.js @@ -47,6 +47,13 @@ // result is invoked when all the opcodes have been iterated over and returns // the final result of the tracing. result: function(ctx, db) { + if (this.prestate === null) { + this.prestate = {}; + // If tx is transfer-only, the recipient account + // hasn't been populated. + this.lookupAccount(ctx.to, db); + } + // At this point, we need to deduct the 'value' from the // outer transaction, and move it back to the origin this.lookupAccount(ctx.from, db); @@ -55,7 +62,7 @@ var toBal = bigInt(this.prestate[toHex(ctx.to)].balance.slice(2), 16); this.prestate[toHex(ctx.to)].balance = '0x'+toBal.subtract(ctx.value).toString(16); - this.prestate[toHex(ctx.from)].balance = '0x'+fromBal.add(ctx.value).toString(16); + this.prestate[toHex(ctx.from)].balance = '0x'+fromBal.add(ctx.value).add(ctx.gasUsed * ctx.gasPrice).toString(16); // Decrement the caller's nonce, and remove empty create targets this.prestate[toHex(ctx.from)].nonce--; @@ -79,7 +86,7 @@ } // Whenever new state is accessed, add it to the prestate switch (log.op.toString()) { - case "EXTCODECOPY": case "EXTCODESIZE": case "BALANCE": + case "EXTCODECOPY": case "EXTCODESIZE": case "EXTCODEHASH": case "BALANCE": this.lookupAccount(toAddress(log.stack.peek(0).toString(16)), db); break; case "CREATE": diff --git a/node/cn/tracers/internal/tracers/tracers.go b/node/cn/tracers/internal/tracers/tracers.go index 02a479b9e..77f84e50b 100644 --- a/node/cn/tracers/internal/tracers/tracers.go +++ b/node/cn/tracers/internal/tracers/tracers.go @@ -14,7 +14,11 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . -// Install the tool: go install github.com/go-bindata/go-bindata/...@latest +// Run after modifying *.js file: +// go install github.com/go-bindata/go-bindata/...@latest +// go install mvdan.cc/gofumpt@latest +// go generate + //go:generate go-bindata -nometadata -o assets.go -pkg tracers -ignore tracers.go -ignore assets.go ./... //go:generate gofumpt -w assets.go diff --git a/node/cn/tracers/make_testdata.js b/node/cn/tracers/make_testdata.js deleted file mode 100644 index 4da9fcfc9..000000000 --- a/node/cn/tracers/make_testdata.js +++ /dev/null @@ -1,41 +0,0 @@ -var makeTest = function(tx, rewind) { - // Generate the genesis block from the block, transaction and prestate data - var block = klay.getBlock(klay.getTransaction(tx).blockHash); - var genesis = klay.getBlock(block.parentHash); - - delete genesis.gasUsed; - delete genesis.logsBloom; - delete genesis.parentHash; - delete genesis.receiptsRoot; - delete genesis.size; - delete genesis.transactions; - delete genesis.transactionsRoot; - delete genesis.governanceData; - delete genesis.voteData; - - // genesis.gasLimit = genesis.gasLimit.toString(); - genesis.number = genesis.number.toString(); - genesis.timestamp = genesis.timestamp.toString(); - - genesis.alloc = debug.traceTransaction(tx, {tracer: "prestateTracer", rewind: rewind}); - for (var key in genesis.alloc) { - genesis.alloc[key].nonce = genesis.alloc[key].nonce.toString(); - } - genesis.config = admin.nodeInfo.protocols.istanbul.config; - - // Generate the call trace and produce the test input - var result = ""; - var result = debug.traceTransaction(tx, {tracer: "callTracer", rewind: rewind}); - delete result.time; - - console.log(JSON.stringify({ - genesis: genesis, - context: { - number: block.number.toString(), - blockscore: block.blockscore, - timestamp: block.timestamp.toString(), - }, - input: klay.getRawTransaction(tx), - result: result, - }, null, 2)); -} diff --git a/node/cn/tracers/make_testdata.sh b/node/cn/tracers/make_testdata.sh deleted file mode 100755 index 94f050436..000000000 --- a/node/cn/tracers/make_testdata.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -if [ $# -ne 2 ]; then - echo "Usage: $0 " - echo "" - echo "Outputs an testdata JSON to stdout" - echo "Example:" - echo " $0 http://127.0.0.1:8551 0x85c29014bc3e11442e06507dc443110becfb63e69fe030d0d104f66a9f705db2 > testdata/call_tracer_hello.json" - exit 1 -fi - -SCRIPT_DIR=$(dirname "$0") -RPC_URL="$1" -TXID=$2 - -PATH="$PATH:$SCRIPT_DIR/../../../build/bin" # For convenience -which ken 1>/dev/null 2>/dev/null -if [ $? -ne 0 ]; then - echo "The 'ken' program is not found in \$PATH" -fi - -ken attach \ - --preload $SCRIPT_DIR/make_testdata.js \ - --exec "makeTest('${TXID}')" \ - ${RPC_URL} \ - | sed '$ d' # delete last line - diff --git a/node/cn/tracers/testdata/README.md b/node/cn/tracers/testdata/README.md new file mode 100644 index 000000000..2e42e16fd --- /dev/null +++ b/node/cn/tracers/testdata/README.md @@ -0,0 +1,16 @@ +# Making testdata + +1. Create a transaction on chain. You can use any network - local private net, testnet, mainnet. Remember its txhash. +2. Run the following command to generate a JSON testdata. Necessary context data will be compiled in the JSON. + + ```sh + export RPC=http://localhost:8551 + ./makeTest.sh fastCallTracer 0x6bcce4a683a1e81168e7ab05c3b4fa7d17a1cb97a70ef5c666a14e4603615b0c call_tracer/my_test.json + ./makeTest.sh prestateTracer 0x6bcce4a683a1e81168e7ab05c3b4fa7d17a1cb97a70ef5c666a14e4603615b0c prestate_tracer/my_test.json + ``` + +3. Inspect the JSON file. +4. Edit the JSON file. + - Delete the last line saying `undefined`. + - Edit the `"_comment"` field in the JSON as needed. + diff --git a/node/cn/tracers/testdata/call_tracer/type00_call_simple_ok.json b/node/cn/tracers/testdata/call_tracer/type00_call_simple_ok.json new file mode 100644 index 000000000..77497b0ca --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_call_simple_ok.json @@ -0,0 +1,83 @@ + { + "_comment": "chainId 1001 txHash 0x7f392254fdd2ae079e2f925f790f34340e69d324143563570bc0991a5e3ee755", + "genesis": { + "alloc": { + "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b538d40e54f79a00", + "nonce": "13", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x8e8442ffaf698a5746a2771a6e21bfce0a50682a8801bda9258a24be88e30f40", + "number": "156322558", + "timestamp": "1717903794", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf86a0d850ba43b740082687594e6c5b1cbf283d9482088136b8cee53fdb6c088eb8084d09de08a8207f5a0c97204674702244bd799e4018b2c848e3bb19ee141bf1bec63bb739f09d59e5ca06cffd781d6712cad3ba53173be81b6a966b787b283cd19b134c7b30e09ddcde3", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x6875", + "gasUsed": "0x6875", + "input": "0xd09de08a", + "to": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_call_simple_oog.json b/node/cn/tracers/testdata/call_tracer/type00_call_simple_oog.json new file mode 100644 index 000000000..48390ee1a --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_call_simple_oog.json @@ -0,0 +1,84 @@ + { + "_comment": "chainId 1001 txHash 0x947b51e96e74bbdb53a2531667aade804ddc441649f4eb5c4a773928b40aae33", + "genesis": { + "alloc": { + "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000002" + } + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b531aea1501e1c00", + "nonce": "16", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xe5fd535011e1374d2fe198553021792cbb34d6c09a1e20e8eb7343d82e587e03", + "number": "156322627", + "timestamp": "1717903863", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf86a10850ba43b74008255f094e6c5b1cbf283d9482088136b8cee53fdb6c088eb8084d09de08a8207f6a0cf8d7e66f5a31542a27856d43e3bda8d0753be02bbce1ae61f74716155bb62a5a03c08400d6c991f93e489169177e686d993662277c2b1c19d5ddf6b2916e86b11", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x55f0", + "gasUsed": "0x55f0", + "input": "0xd09de08a", + "to": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb", + "value": "0x0", + "error": "out of gas", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_msg.json b/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_msg.json new file mode 100644 index 000000000..daa331edc --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_msg.json @@ -0,0 +1,90 @@ + { + "_comment": "chainId 1001 txHash 0x49aa6074a3b4970399ef2af12b109c4cb4a65ab8a833d1540e4cefa657a3c0c7", + "genesis": { + "alloc": { + "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000002" + } + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5341521565c3000", + "nonce": "15", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x8aa88d85e881ebfccc9faf5449b6874da5adaed2cc73710157e0f336f17d4c54", + "number": "156322608", + "timestamp": "1717903844", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf86a0f850ba43b740082c35094e6c5b1cbf283d9482088136b8cee53fdb6c088eb8084966706448207f5a059026e110fb2c4855ede621d84d9b4385ddda34e5c8e8d595c5304e4442dc453a04fc6f3db395cc2ccf79643d6f4a07311524881dc629b51d3af71ce2ece6ab125", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xc350", + "gasUsed": "0x6992", + "input": "0x96670644", + "to": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb", + "value": "0x0", + "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000962616420696e7075740000000000000000000000000000000000000000000000", + "error": "execution reverted", + "revertReason": "bad input", + "reverted": { + "contract": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb", + "message": "bad input" + }, + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_nomsg.json b/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_nomsg.json new file mode 100644 index 000000000..95a92eb83 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_call_simple_revert_nomsg.json @@ -0,0 +1,87 @@ + { + "_comment": "chainId 1001 txHash 0x913da8d326dad5607478222dae3553f4cbf156388c31295683ea38d1b8bbd28d", + "genesis": { + "alloc": { + "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000002" + } + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b536740939d19800", + "nonce": "14", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x038652a8996462d4fd1114feaf36091390f3ec638774d16e3f50f28041d7be64", + "number": "156322585", + "timestamp": "1717903821", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf86a0e850ba43b740082c35094e6c5b1cbf283d9482088136b8cee53fdb6c088eb808435f469948207f5a0cc07247fd969558513e0b7006a9ce0071d6dfd50fa4849c4b1cda821dfdf806ca0472bce3e9915e13177940fa65f50222f24cba6d66044f975e8408cf8df1c73cd", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xc350", + "gasUsed": "0x6844", + "input": "0x35f46994", + "to": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb", + "value": "0x0", + "error": "execution reverted", + "reverted": { + "contract": "0xe6c5b1cbf283d9482088136b8cee53fdb6c088eb" + }, + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_create_ok.json b/node/cn/tracers/testdata/call_tracer/type00_create_ok.json new file mode 100644 index 000000000..464daf79f --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_create_ok.json @@ -0,0 +1,76 @@ + { + "_comment": "chainId 1001 txHash 0x7dd869897711aea97611f6cd925ecbc61d25c15b6a9cd3d3ec08df96d9835c04", + "genesis": { + "alloc": { + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b54eb23ef8d64800", + "nonce": "12", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x1ab4c6e617a25afe85cbc74d47adbbb27f4f8dbb5f002898422d72963285b9c4", + "number": "156322526", + "timestamp": "1717903762", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf902eb0c850ba43b74008303c1c38080b902966080604052348015600e575f80fd5b5061027a8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a00338207f6a0ea7e2d6e3e09ca517d90b9dc612c4588dd1bf46e3455ae874ad3fb4614be21fba0556f389e5a10128f8e389c28f6655b00c7296b4c151e5006c578b140e3c9a5fe", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x3c1c3", + "gasUsed": "0x3c1c3", + "input": "0x6080604052348015600e575f80fd5b5061027a8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "to": "0x4a2204ab35eb3a365bcaf4647a404b2435c03334", + "value": "0x0", + "output": "0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c806335f469941461004e5780638381f58a146100585780639667064414610076578063d09de08a14610080575b5f80fd5b61005661008a565b005b6100606100ae565b60405161006d919061013f565b60405180910390f35b61007e6100b3565b005b61008861010f565b005b5f8081548092919061009b90610185565b91905055505f6001146100ac575f80fd5b565b5f5481565b5f808154809291906100c490610185565b9190505550600160021461010d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010490610226565b60405180910390fd5b565b5f8081548092919061012090610185565b9190505550565b5f819050919050565b61013981610127565b82525050565b5f6020820190506101525f830184610130565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61018f82610127565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036101c1576101c0610158565b5b600182019050919050565b5f82825260208201905092915050565b7f62616420696e70757400000000000000000000000000000000000000000000005f82015250565b5f6102106009836101cc565b915061021b826101dc565b602082019050919050565b5f6020820190508181035f83015261023d81610204565b905091905056fea2646970667358221220038a0b4df95a181a3d6015b14447422ba6fc5cb631fc606ca794f09f8818e4e864736f6c634300081a0033", + "type": "CREATE" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_vt_nonzero_ok.json b/node/cn/tracers/testdata/call_tracer/type00_vt_nonzero_ok.json new file mode 100644 index 000000000..ee51f0e86 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_vt_nonzero_ok.json @@ -0,0 +1,81 @@ + { + "_comment": "chainId 1001 txHash 0x7e3c5bdb4ee3974a6af2b50affa3f1d36d1ed56c3dd32f34287d8fbceca959c8", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x354a6ba7a18000", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b570892eda529800", + "nonce": "11", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x9cc92992a08bc3623821fa6a01b66c25c34ac86f838908209ffa953862bec907", + "number": "156322505", + "timestamp": "1717903741", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf86d0b850ba43b740082520894ba736c844fd44c380ce19423f9f1ddcb9cd19b6c871ff973cafa8000808207f6a06ee552af2009bf950f8bd1b843c5605478d458a2b95ea8823030988a766fffd2a029b6253508a0c77f8426cd796630f1199bc9b8c59edeee9a98ee6dc1c7ce2507", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x5208", + "gasUsed": "0x5208", + "input": "0x", + "to": "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c", + "value": "0x1ff973cafa8000", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type00_vt_zero_ok.json b/node/cn/tracers/testdata/call_tracer/type00_vt_zero_ok.json new file mode 100644 index 000000000..4bb8d775f --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type00_vt_zero_ok.json @@ -0,0 +1,81 @@ + { + "_comment": "chainId 1001 txHash 0x6bcce4a683a1e81168e7ab05c3b4fa7d17a1cb97a70ef5c666a14e4603615b0c", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x354a6ba7a18000", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b57266aaf0d46800", + "nonce": "10", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xc1293c22998f6d463d9790fe5de569fffa7d92ccd0339ab2e93d0c58bdc23f3f", + "number": "156322489", + "timestamp": "1717903725", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0xf8660a850ba43b740082520894ba736c844fd44c380ce19423f9f1ddcb9cd19b6c80808207f6a0488d5a9590931961319ba909e2a135e6289b66a7dfc489dee4ae02348ed81ba2a0717d52e2ff7965243b05a957a9ac27c3e86d02ad51331dc112960d36ce820ebb", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x5208", + "gasUsed": "0x5208", + "input": "0x", + "to": "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_callcode_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_callcode_ok.json new file mode 100644 index 000000000..ebb83e4cd --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_callcode_ok.json @@ -0,0 +1,100 @@ + { + "_comment": "chainId 1001 txHash 0xa08bc9c2cd694c9f8b365c0d5361b11904a1783283a7ab8f9b9ba621a90d4a81 CallCodeCaller.sol", + "genesis": { + "alloc": { + "0x9eb29d8374ea137a21264ecc95b2e808b02064d3": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633917b3df14610046575b600080fd5b61004e610050565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561013857808201518184015260208101905061011d565b50505050905090810190601f1680156101655780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af2915050505600a165627a7a7230582048e2dfe51493e523a0c6fdad1b437bd853aa3748f8d25fa4258a947cd2b4594a0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000003625f722b191ad858899eaaecaddc4c8f18488ae" + } + }, + "0x3625f722b191ad858899eaaecaddc4c8f18488ae": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c605f76c146044575b600080fd5b604a604c565b005b5600a165627a7a723058205533ed81b1ced1dcd0f6d6cd6f8c85a681ae1dc6f862ffe5fe03b40ef9aabde30029", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b08be25231543900", + "nonce": "47", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x21cef59cf7332aa098e396f67f2cea0a196ba120715707c0993ceca418c493f0", + "number": "157223835", + "timestamp": "1718805202", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8798203e92f853a35294400853a352944008268d8949eb29d8374ea137a21264ecc95b2e808b02064d387071afd498d0000843917b3dfc001a0c0a19e13ea294c77805bcbea9a3cbd6dc2c3f9ff84695540825efbf307730392a062e0ed7b667be7b5a1504249d3a51048f551c5886948839383f1e87f89cf1f32", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x68d8", + "gasUsed": "0x68d8", + "input": "0x3917b3df", + "to": "0x9eb29d8374ea137a21264ecc95b2e808b02064d3", + "value": "0x71afd498d0000", + "calls": [ + { + "from": "0x9eb29d8374ea137a21264ecc95b2e808b02064d3", + "gas": "0x7e", + "gasUsed": "0x6d", + "input": "0xc605f76c00000000000000000000000000000000000000000000000000000000", + "to": "0x3625f722b191ad858899eaaecaddc4c8f18488ae", + "value": "0x0", + "type": "CALLCODE" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_create2_collision.json b/node/cn/tracers/testdata/call_tracer/type02_call_create2_collision.json new file mode 100644 index 000000000..ee3d7f24a --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_create2_collision.json @@ -0,0 +1,102 @@ + { + "_comment": "chainId 1001 txHash 0xdf06945964fb2f966c89716bb936da523964c73ee30c0f556baaad90263facfd Factory2.sol", + "genesis": { + "alloc": { + "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11": { + "balance": "0x0", + "nonce": "2", + "code": "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f79b99e91461002d575b5f80fd5b61004760048036038101906100429190610135565b610049565b005b5f8282604051610058906100be565b6100629190610182565b8190604051809103905ff590508015801561007f573d5f803e3d5ffd5b5090507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd84848816040516100b191906101da565b60405180910390a1505050565b610152806101f483390190565b5f80fd5b5f819050919050565b6100e1816100cf565b81146100eb575f80fd5b50565b5f813590506100fc816100d8565b92915050565b5f819050919050565b61011481610102565b811461011e575f80fd5b50565b5f8135905061012f8161010b565b92915050565b5f806040838503121561014b5761014a6100cb565b5b5f610158858286016100ee565b925050602061016985828601610121565b9150509250929050565b61017c81610102565b82525050565b5f6020820190506101955f830184610173565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101c48261019b565b9050919050565b6101d4816101ba565b82525050565b5f6020820190506101ed5f8301846101cb565b9291505056fe608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033a2646970667358221220e57bc96711772b411fbb5dc0f0f197fb5de9de8c37d4e31da705d9f5f3741da164736f6c634300081a0033", + "storage": {} + }, + "0x6f2c371402673b247c4f256f7e46c8854265b8bc": { + "balance": "0x0", + "nonce": "1", + "code": "0x60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2ad7ecce89de9c100", + "nonce": "54", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x4d569a755e261d162aa1120c7eee60521476d246c9696095bd44605b3dddd001", + "number": "157225294", + "timestamp": "1718806661", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8b48203e936853a35294400853a35294400832dc6c094afe64e2883b6fe56fbdddeef1536e034f2fe6c1180b844f79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000007bc080a0d9d12f7f3ad09a15a1a119d978475fda23489390abe5ccd98febeccfcc6ce41da0093989b075a7e4f64d21ddeaaab0b3706cbccb005578d1d0735608cfb610e7b1", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x2dc6c0", + "gasUsed": "0x2d1387", + "input": "0xf79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000007b", + "to": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "value": "0x0", + "error": "execution reverted", + "reverted": { + "contract": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11" + }, + "calls": [ + { + "from": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "gas": "0x2c2618", + "gasUsed": "0x2c2618", + "input": "0x608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000007b", + "value": "0x0", + "error": "contract address collision", + "type": "CREATE2" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_create2_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_create2_ok.json new file mode 100644 index 000000000..8dfe2d8ed --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_create2_ok.json @@ -0,0 +1,99 @@ + { + "_comment": "chainId 1001 txHash 0x103db02de5138fa200a0a8263ca8f8c43cd2e0ab7e94cdf7abb1b206f7cc7d8a Factory2.sol", + "genesis": { + "alloc": { + "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f79b99e91461002d575b5f80fd5b61004760048036038101906100429190610135565b610049565b005b5f8282604051610058906100be565b6100629190610182565b8190604051809103905ff590508015801561007f573d5f803e3d5ffd5b5090507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd84848816040516100b191906101da565b60405180910390a1505050565b610152806101f483390190565b5f80fd5b5f819050919050565b6100e1816100cf565b81146100eb575f80fd5b50565b5f813590506100fc816100d8565b92915050565b5f819050919050565b61011481610102565b811461011e575f80fd5b50565b5f8135905061012f8161010b565b92915050565b5f806040838503121561014b5761014a6100cb565b5b5f610158858286016100ee565b925050602061016985828601610121565b9150509250929050565b61017c81610102565b82525050565b5f6020820190506101955f830184610173565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101c48261019b565b9050919050565b6101d4816101ba565b82525050565b5f6020820190506101ed5f8301846101cb565b9291505056fe608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033a2646970667358221220e57bc96711772b411fbb5dc0f0f197fb5de9de8c37d4e31da705d9f5f3741da164736f6c634300081a0033", + "storage": {} + }, + "0x6f2c371402673b247c4f256f7e46c8854265b8bc": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2adf7e042beb27d00", + "nonce": "52", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x9a33762d5f39176bbc978388bdd3f26293bd70e5a84aae19c4191c07f26bbd2c", + "number": "157224967", + "timestamp": "1718806334", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8b48203e934853a35294400853a35294400830124ec94afe64e2883b6fe56fbdddeef1536e034f2fe6c1180b844f79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000007bc001a0eb3401abab5750f112010d6068d3ab7b22a1b6ab26fe0fe6965ce32cd5ba537ea0179aa9cc4f78f6759c1adbf7bde80d49c8e9c75da9271b297a42c7ccf57bafce", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x124ec", + "gasUsed": "0x124ec", + "input": "0xf79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000007b", + "to": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "value": "0x0", + "calls": [ + { + "from": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "gas": "0x36cb", + "gasUsed": "0x32a6", + "input": "0x608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000007b", + "to": "0x6f2c371402673b247c4f256f7e46c8854265b8bc", + "value": "0x0", + "output": "0x60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033", + "type": "CREATE2" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_create2_revert.json b/node/cn/tracers/testdata/call_tracer/type02_call_create2_revert.json new file mode 100644 index 000000000..a139853d2 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_create2_revert.json @@ -0,0 +1,105 @@ + { + "_comment": "chainId 1001 txHash 0x8dd14f4f62320bb78ddb3d50eab80382697643e3a589db42dbfd5c2e653313f1 Factory2.sol", + "genesis": { + "alloc": { + "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11": { + "balance": "0x0", + "nonce": "2", + "code": "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f79b99e91461002d575b5f80fd5b61004760048036038101906100429190610135565b610049565b005b5f8282604051610058906100be565b6100629190610182565b8190604051809103905ff590508015801561007f573d5f803e3d5ffd5b5090507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd84848816040516100b191906101da565b60405180910390a1505050565b610152806101f483390190565b5f80fd5b5f819050919050565b6100e1816100cf565b81146100eb575f80fd5b50565b5f813590506100fc816100d8565b92915050565b5f819050919050565b61011481610102565b811461011e575f80fd5b50565b5f8135905061012f8161010b565b92915050565b5f806040838503121561014b5761014a6100cb565b5b5f610158858286016100ee565b925050602061016985828601610121565b9150509250929050565b61017c81610102565b82525050565b5f6020820190506101955f830184610173565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101c48261019b565b9050919050565b6101d4816101ba565b82525050565b5f6020820190506101ed5f8301846101cb565b9291505056fe608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033a2646970667358221220e57bc96711772b411fbb5dc0f0f197fb5de9de8c37d4e31da705d9f5f3741da164736f6c634300081a0033", + "storage": {} + }, + "0x34e6cabc9eda963b5cf5a7867830560cf98a881c": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2adb545f6ab17cd00", + "nonce": "53", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xe484c73617df077a2c33e33ef409e939e02abf56fabc22bf2a684374b10f4087", + "number": "157225128", + "timestamp": "1718806495", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8b48203e935853a35294400853a35294400832dc6c094afe64e2883b6fe56fbdddeef1536e034f2fe6c1180b844f79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000004dc080a03b8245dc3913b109a6dc7fc01131cc2fa33f77a6c8d61341717ef678b1df7be8a03c8fc94d2036b896168d9202466e0329a59a469f7c82ef5b35fbafc4cd8a6159", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x2dc6c0", + "gasUsed": "0xef93", + "input": "0xf79b99e91111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000004d", + "to": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "value": "0x0", + "output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000011", + "error": "execution reverted", + "reverted": { + "contract": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11" + }, + "calls": [ + { + "from": "0xafe64e2883b6fe56fbdddeef1536e034f2fe6c11", + "gas": "0x2c2618", + "gasUsed": "0x21e", + "input": "0x608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea26469706673582212201f37d242bfef7d838ebdb95c50545173bfdb701116ab06c42a6beb267ab5623864736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000004d", + "value": "0x0", + "output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000011", + "error": "execution reverted", + "reverted": {}, + "type": "CREATE2" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_create_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_create_ok.json new file mode 100644 index 000000000..7c4593aa1 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_create_ok.json @@ -0,0 +1,99 @@ + { + "_comment": "chainId 1001 txHash 0xcfeb919191ce1ed4f36263cf8950db56545926f7b09fbeba833169b6449b7afb Factory.sol", + "genesis": { + "alloc": { + "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80639db8d7d51461002d575b5f80fd5b610047600480360381019061004291906100c2565b610049565b005b806040516100569061007e565b61006091906100fc565b604051809103905ff080158015610079573d5f803e3d5ffd5b505050565b6101528061011683390190565b5f80fd5b5f819050919050565b6100a18161008f565b81146100ab575f80fd5b50565b5f813590506100bc81610098565b92915050565b5f602082840312156100d7576100d661008b565b5b5f6100e4848285016100ae565b91505092915050565b6100f68161008f565b82525050565b5f60208201905061010f5f8301846100ed565b9291505056fe608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea2646970667358221220aa2380c312363dbb2de79540827da478c9bb4d32360f553fd318b5d2236b6d4064736f6c634300081a0033a264697066735822122013f6ea70f6b6b46f6cae9067cf3ae53873528eb74c6e2931d932d5e54f85a74d64736f6c634300081a0033", + "storage": {} + }, + "0x9a1f65a59b826b1124a41089981385d3451aed95": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2af88ed7ac8cfdd00", + "nonce": "49", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x244e988f56bce14a2746756cb50823059f8a7f8af83c7dfa8e01c609ef078148", + "number": "157224189", + "timestamp": "1718805556", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8938203e931853a35294400853a352944008301133a94d89618bb5fbfe498215bf26ba205bc0cf36c0b5e80a49db8d7d5000000000000000000000000000000000000000000000000000000000000006fc080a0fe86a91d68f36170bbcecd36456743413a055e2d80814f7621eede6b3dac781aa0711deb8eb271347925599af462c33086bda52869ef20e1450b8c417a5595b619", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x1133a", + "gasUsed": "0x11296", + "input": "0x9db8d7d5000000000000000000000000000000000000000000000000000000000000006f", + "to": "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e", + "value": "0x0", + "calls": [ + { + "from": "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e", + "gas": "0x32a6", + "gasUsed": "0x32a6", + "input": "0x608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea2646970667358221220aa2380c312363dbb2de79540827da478c9bb4d32360f553fd318b5d2236b6d4064736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000006f", + "to": "0x9a1f65a59b826b1124a41089981385d3451aed95", + "value": "0x0", + "output": "0x60806040525f80fdfea2646970667358221220aa2380c312363dbb2de79540827da478c9bb4d32360f553fd318b5d2236b6d4064736f6c634300081a0033", + "type": "CREATE" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_create_revert.json b/node/cn/tracers/testdata/call_tracer/type02_call_create_revert.json new file mode 100644 index 000000000..b09216eab --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_create_revert.json @@ -0,0 +1,105 @@ + { + "_comment": "chainId 1001 txHash 0xe23bc0bb5e12fea415cf7722f81cf7b8ea91b0c0bc7f29e7db620a8a2aa54328 Factory.sol", + "genesis": { + "alloc": { + "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e": { + "balance": "0x0", + "nonce": "2", + "code": "0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80639db8d7d51461002d575b5f80fd5b610047600480360381019061004291906100c2565b610049565b005b806040516100569061007e565b61006091906100fc565b604051809103905ff080158015610079573d5f803e3d5ffd5b505050565b6101528061011683390190565b5f80fd5b5f819050919050565b6100a18161008f565b81146100ab575f80fd5b50565b5f813590506100bc81610098565b92915050565b5f602082840312156100d7576100d661008b565b5b5f6100e4848285016100ae565b91505092915050565b6100f68161008f565b82525050565b5f60208201905061010f5f8301846100ed565b9291505056fe608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea2646970667358221220aa2380c312363dbb2de79540827da478c9bb4d32360f553fd318b5d2236b6d4064736f6c634300081a0033a264697066735822122013f6ea70f6b6b46f6cae9067cf3ae53873528eb74c6e2931d932d5e54f85a74d64736f6c634300081a0033", + "storage": {} + }, + "0x16b9f63c88a7b7cbe59b0e24e9c9db96cd530f6f": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2af4a7e7977da0500", + "nonce": "50", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xd1bcfffe9551ec5dd2d64170d3409c487760fe636c32857ce79b426e88aecff2", + "number": "157224409", + "timestamp": "1718805776", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8938203e932853a35294400853a35294400832dc6c094d89618bb5fbfe498215bf26ba205bc0cf36c0b5e80a49db8d7d50000000000000000000000000000000000000000000000000000000000000021c001a043caea635908f5766d89620e09f159b8d2bf18a989a1b37a47c5308d93b63bf4a0342e28332aa9dea56e3a5d0690cf3ece24cbd676eb5b1c172340dccf924650e3", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x2dc6c0", + "gasUsed": "0xe212", + "input": "0x9db8d7d50000000000000000000000000000000000000000000000000000000000000021", + "to": "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e", + "value": "0x0", + "output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000011", + "error": "execution reverted", + "reverted": { + "contract": "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e" + }, + "calls": [ + { + "from": "0xd89618bb5fbfe498215bf26ba205bc0cf36c0b5e", + "gas": "0x2c335e", + "gasUsed": "0x21e", + "input": "0x608060405234801561000f575f80fd5b506040516101523803806101528339818101604052810190610031919061007d565b60648161003e91906100d5565b905050610108565b5f80fd5b5f819050919050565b61005c8161004a565b8114610066575f80fd5b50565b5f8151905061007781610053565b92915050565b5f6020828403121561009257610091610046565b5b5f61009f84828501610069565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6100df8261004a565b91506100ea8361004a565b9250828203905081811115610102576101016100a8565b5b92915050565b603e806101145f395ff3fe60806040525f80fdfea2646970667358221220aa2380c312363dbb2de79540827da478c9bb4d32360f553fd318b5d2236b6d4064736f6c634300081a00330000000000000000000000000000000000000000000000000000000000000021", + "value": "0x0", + "output": "0x4e487b710000000000000000000000000000000000000000000000000000000000000011", + "error": "execution reverted", + "reverted": {}, + "type": "CREATE" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_delegatecall_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_delegatecall_ok.json new file mode 100644 index 000000000..5a11a8197 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_delegatecall_ok.json @@ -0,0 +1,100 @@ + { + "_comment": "chainId 1001 txHash 0x931c5af31bfb906fc20effa0f90f1a8e66edefac9879729fedd18a65d64a11be DelegateCaller.sol", + "genesis": { + "alloc": { + "0xd94ed12cf3c2eded33adc58a7a09f0b4e0721cd0": { + "balance": "0x0", + "nonce": "1", + "code": "0x60806040526004361061001e5760003560e01c80633917b3df14610023575b600080fd5b61002b61002d565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061011b57805182526020820191506020810190506020830392506100f8565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461017b576040519150601f19603f3d011682016040523d82523d6000602084013e610180565b606091505b50505056fea165627a7a72305820328f478fc00e99f4fe448c69cb6e3474a806d2290fc314707df20b01ed551a0e0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000003d0c6d64907b2ef39e73aa8b08ad8da9b03b9140" + } + }, + "0x3d0c6d64907b2ef39e73aa8b08ad8da9b03b9140": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405260043610601c5760003560e01c8063c605f76c146021575b600080fd5b60276029565b005b56fea165627a7a72305820a78bbff26a2b18e83d320dc32b5a08642a2f9704bc6c72a47b29bd733695d1310029", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b423a36015447300", + "nonce": "38", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x36aa95ca790ecb4cb63bf5b3651eb696284bd77ad9dbc460413e88a9f1892342", + "number": "157093750", + "timestamp": "1718675117", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8798203e92685062b85e90085062b85e90082687a94d94ed12cf3c2eded33adc58a7a09f0b4e0721cd0870aa87bee538000843917b3dfc001a0e9f50002f3b369e40a6dcd6a2fd1ca821b5ffbf33d0837298fb38717dd5df5c5a01cf5c73cb8693bac8ed10a70979ebc0d122fafa0e8571407378e02833e535a47", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x687a", + "gasUsed": "0x687a", + "input": "0x3917b3df", + "to": "0xd94ed12cf3c2eded33adc58a7a09f0b4e0721cd0", + "value": "0xaa87bee538000", + "calls": [ + { + "from": "0xd94ed12cf3c2eded33adc58a7a09f0b4e0721cd0", + "gas": "0x9b", + "gasUsed": "0x62", + "input": "0xc605f76c", + "to": "0x3d0c6d64907b2ef39e73aa8b08ad8da9b03b9140", + "value": "0xaa87bee538000", + "type": "DELEGATECALL" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_precompile_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_precompile_ok.json new file mode 100644 index 000000000..9744bdade --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_precompile_ok.json @@ -0,0 +1,98 @@ + { + "_comment": "chainId 1001 txHash 0xb71df5a6628cd2c193c5155c4dabbd45604a6207334c793b512293e165a04526 Sha256.sol", + "genesis": { + "alloc": { + "0x813c4bd8a12e427f08e9982c958e0a6d4e05c56f": { + "balance": "0x0", + "nonce": "1", + "code": "0x60806040526004361061001d575f3560e01c80639fb8371114610021575b5f80fd5b61003b600480360381019061003691906101dc565b61003d565b005b60028160405161004d9190610275565b602060405180830381855afa158015610068573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061008b91906102be565b5050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100ee826100a8565b810181811067ffffffffffffffff8211171561010d5761010c6100b8565b5b80604052505050565b5f61011f61008f565b905061012b82826100e5565b919050565b5f67ffffffffffffffff82111561014a576101496100b8565b5b610153826100a8565b9050602081019050919050565b828183375f83830152505050565b5f61018061017b84610130565b610116565b90508281526020810184848401111561019c5761019b6100a4565b5b6101a7848285610160565b509392505050565b5f82601f8301126101c3576101c26100a0565b5b81356101d384826020860161016e565b91505092915050565b5f602082840312156101f1576101f0610098565b5b5f82013567ffffffffffffffff81111561020e5761020d61009c565b5b61021a848285016101af565b91505092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61024f82610223565b610259818561022d565b9350610269818560208601610237565b80840191505092915050565b5f6102808284610245565b915081905092915050565b5f819050919050565b61029d8161028b565b81146102a7575f80fd5b50565b5f815190506102b881610294565b92915050565b5f602082840312156102d3576102d2610098565b5b5f6102e0848285016102aa565b9150509291505056fea264697066735822122060e276d978ed54733e39a02ffa8e33bf01996d78e2616797d5ca3a60cb272fd864736f6c634300081a0033", + "storage": {} + }, + "0x0000000000000000000000000000000000000002": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b1bdf7d64bf3e900", + "nonce": "44", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xb3e5f4073d3393484ccf1a920e3602877a2a3f88eded43907f56b84acf6957db", + "number": "157223508", + "timestamp": "1718804875", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8d38203e92c853a35294400853a35294400827fc594813c4bd8a12e427f08e9982c958e0a6d4e05c56f80b8649fb83711000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000099988776655443322110000000000000000000000000000000000000000000000c001a018dd0120e5a74b959c5831603b32895705588599b33a174662b1620fcddfc796a0541698ea3f21d5b12644fe5f4a68c64afd10ff3122e734cadd6cb2662c64ffc3", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x7fc5", + "gasUsed": "0x7fc5", + "input": "0x9fb83711000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000099988776655443322110000000000000000000000000000000000000000000000", + "to": "0x813c4bd8a12e427f08e9982c958e0a6d4e05c56f", + "value": "0x0", + "calls": [ + { + "from": "0x813c4bd8a12e427f08e9982c958e0a6d4e05c56f", + "gas": "0x18c", + "gasUsed": "0x48", + "input": "0x998877665544332211", + "to": "0x0000000000000000000000000000000000000002", + "output": "0x1c32777581417de40ff9f685335ce161c493e2528c39742c5327198b95b07320", + "type": "STATICCALL" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type02_call_staticcall_ok.json b/node/cn/tracers/testdata/call_tracer/type02_call_staticcall_ok.json new file mode 100644 index 000000000..6ae813500 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type02_call_staticcall_ok.json @@ -0,0 +1,99 @@ + { + "_comment": "chainId 1001 txHash 0xc57b82f27d9df5d88c9fbd5ecbdce2787c4fd8262a2df1a029692f4a3725191d StaticCaller.sol", + "genesis": { + "alloc": { + "0x2af29332f739b350bb3e452f46d75f46d7cca6a9": { + "balance": "0x3a352944000", + "nonce": "1", + "code": "0x60806040526004361061001e5760003560e01c80633917b3df14610023575b600080fd5b61002b61002d565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b6020831061011b57805182526020820191506020810190506020830392506100f8565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461017b576040519150601f19603f3d011682016040523d82523d6000602084013e610180565b606091505b50505056fea265627a7a723158200b7d0b6271b46b892b49dd894831fb122d6bf03a17330b3da09a81e15110cc1564736f6c63430005110032", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000cd8a0df27e9b0a384266bbb24627a3a0f17a758f" + } + }, + "0xcd8a0df27e9b0a384266bbb24627a3a0f17a758f": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405260043610601c5760003560e01c8063c605f76c146021575b600080fd5b60276029565b005b56fea265627a7a72315820af0c13e6938072667acc9212b2cd62d3da157b26236d006eca47566a996f5c4d64736f6c63430005110032", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b2ea9d5f19bf7100", + "nonce": "42", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 50 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 9500000000000000000, + "ratio": "50/25/25", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xe6ee2dbecd38b5a6f084482c1caf2c8800bd3ee256829766ec27c7270405a149", + "number": "157222876", + "timestamp": "1718804243", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x7802f8798203e92a853a35294400853a3529440082687a942af29332f739b350bb3e452f46d75f46d7cca6a9870e35fa931a0000843917b3dfc001a0ec68cd1cbe293d7c62feb31e3e358ac0f80bb8234cdf33e4255df2a4c94d55cda001de60a41d989cd53d0bfcddaac82dced6a4bdbd84e63678e5f033ac4fc6f40c", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0x687a", + "gasUsed": "0x687a", + "input": "0x3917b3df", + "to": "0x2af29332f739b350bb3e452f46d75f46d7cca6a9", + "value": "0xe35fa931a0000", + "calls": [ + { + "from": "0x2af29332f739b350bb3e452f46d75f46d7cca6a9", + "gas": "0x9b", + "gasUsed": "0x62", + "input": "0xc605f76c", + "to": "0xcd8a0df27e9b0a384266bbb24627a3a0f17a758f", + "type": "STATICCALL" + } + ], + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type08_vt_ok.json b/node/cn/tracers/testdata/call_tracer/type08_vt_ok.json new file mode 100644 index 000000000..fb1cec0ec --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type08_vt_ok.json @@ -0,0 +1,81 @@ + { + "_comment": "chainId 1001 txHash 0x17c667d2559c7477c5e568ce67e435eabf6eafc8511eee6166329ba89ea73363", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5e1d19a9b063000", + "nonce": "1", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x70bfb54bf85707fd84d5bd1060278b0ee4d6984f884a99c434c75b770be1f4b9", + "number": "156280304", + "timestamp": "1717861540", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x08f88501850ba43b740082d0fc94ba736c844fd44c380ce19423f9f1ddcb9cd19b6c8718de76816d8000947f0546832758f61410e81a94d7a07d55b1dfd278f847f8458207f5a03294219d2d931418b5b4f721912833a09856820886f5997fabe6abf93d6144daa05cb2d388ee200e1109eb206fd9629a6e3715c5baedff1f0bf2c789d360e252cd", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xd0fc", + "gasUsed": "0x5208", + "input": "0x", + "to": "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c", + "value": "0x18de76816d8000", + "type": "CALL" + } +} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer/type08_vt_zero.json b/node/cn/tracers/testdata/call_tracer/type08_vt_zero.json new file mode 100644 index 000000000..f8d6bfca5 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type08_vt_zero.json @@ -0,0 +1,81 @@ + { + "_comment": "chainId 1001 txHash 0xf3b71a6f97667dba14aef6d512c9bb01c7af43756e464c57e12b2fdfa7a9d3f2", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5e3af16b1880000", + "nonce": "0", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x52b744eda45dfd4a39fab9f2ca50d6353d6538f715d35ac235c93824a3a73b0c", + "number": "156280235", + "timestamp": "1717861471", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x08f87e80850ba43b740082cd1494ba736c844fd44c380ce19423f9f1ddcb9cd19b6c80947f0546832758f61410e81a94d7a07d55b1dfd278f847f8458207f6a0a84e3bf4113b07199f18b01a88a55723d06d9096ccaac298bdd63c5eb5042896a00356ad1d3a2399a94a3d6ebcc4627575c6e4a5b5d6bc217cef83a7c09b4998aa", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xcd14", + "gasUsed": "0x5208", + "input": "0x", + "to": "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type10_vt_memo.json b/node/cn/tracers/testdata/call_tracer/type10_vt_memo.json new file mode 100644 index 000000000..6aa809a87 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type10_vt_memo.json @@ -0,0 +1,81 @@ + { + "_comment": "chainId 1001 txHash 0xe8cc9b00cd11500f2d25ae0a8f8bcaf4c9bd27b02b8bbfa46613ae2da4e5e7b6", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x18de76816d8000", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5c715a80316e000", + "nonce": "2", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x3846991418434bb8ec212708eaee5b7379942100f4a0c0042b1981f73758b5a6", + "number": "156280349", + "timestamp": "1717861585", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x10f88a02850ba43b740082d0fc94ba736c844fd44c380ce19423f9f1ddcb9cd19b6c871c6bf526340000947f0546832758f61410e81a94d7a07d55b1dfd27884aabbccddf847f8458207f6a0f31bda6a9927721ba05e9e59d99e3eee70e2c7e6ddb1d50865242f25c4ed2522a02c13bbdb473e96a2069941b5812b591a876a35560efcd5131161f345160681d4", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xd0fc", + "gasUsed": "0x5398", + "input": "0xaabbccdd", + "to": "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c", + "value": "0x1c6bf526340000", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type20_accupdate.json b/node/cn/tracers/testdata/call_tracer/type20_accupdate.json new file mode 100644 index 000000000..583781284 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type20_accupdate.json @@ -0,0 +1,75 @@ + { + "_comment": "chainId 1001 txHash 0xac43859eb4064916e8be8e74645d6019cc48cb6791f68ea21d42ead6bba569b5", + "genesis": { + "alloc": { + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5a8c31e77ee7000", + "nonce": "3", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xee1208f397a03d5fc96391b113f008fc921893203d379c0228b8bf371016b667", + "number": "156280549", + "timestamp": "1717861785", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x20f88c03850ba43b740082cd14947f0546832758f61410e81a94d7a07d55b1dfd278a302a1028f13fa37ebaeeaeede548a03d018c5b7cba8d08f2e4b40b1a7609dc06a8dba93f847f8458207f5a0712d6af1de02ab032d4827b1621055a2cd6df8c2f55fb4da6ead73bf4e1de18ca01f74233de65933425aa1f591a07e56d4297fb53101d159c498bb8088829fd7da", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xcd14", + "gasUsed": "0xa028", + "to": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "input": "0x", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type30_scexec_nested.json b/node/cn/tracers/testdata/call_tracer/type30_scexec_nested.json new file mode 100644 index 000000000..aa100eb33 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type30_scexec_nested.json @@ -0,0 +1,169 @@ + { + "_comment": "chainId 1001 txHash 0x8cae8c6b697d22c89ee7bf469c55720f12ce54c5dac2e345dd60711b10de7376", + "genesis": { + "alloc": { + "0xc75154e096d7a123b1c7f3200dcf120f304ccc09": { + "balance": "0x0", + "nonce": "1", + "code": "0x60806040523661001357610011610017565b005b6100115b61002761002261005e565b610096565b565b606061004e838360405180606001604052806027815260200161024c602791396100ba565b9392505050565b3b151590565b90565b60006100917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100b5573d6000f35b3d6000fd5b6060833b61011e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161013991906101cc565b600060405180830381855af49150503d8060008114610174576040519150601f19603f3d011682016040523d82523d6000602084013e610179565b606091505b5091509150610189828286610193565b9695505050505050565b606083156101a257508161004e565b8251156101b25782518084602001fd5b8160405162461bcd60e51b815260040161011591906101e8565b600082516101de81846020870161021b565b9190910192915050565b600060208252825180602084015261020781604085016020870161021b565b601f01601f19169190910160400192915050565b60005b8381101561023657818101518382015260200161021e565b83811115610245576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209b8470f06e8a3960c912103fc2be177edaad69584ee3c7d2809ee737e79408e764736f6c63430008020033", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d", + "0x0000000000000000000000000000000000000000000000000000000000000103": "0x00000000000000000000000099abc3bbd2f001ce629bc4de078ba8f5e80f4af9", + "0x0000000000000000000000000000000000000000000000000000000000000101": "0x000000000000000000000000000000000000000000000000000000000002a51b", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29f7": "0x000000000000000000000000000000000000000000000000000000006667a276", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29f8": "0x000000000000000000000000000000000000000000000000000000006667a32a", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29f9": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29fa": "0x000000000000000000000000000000000000000000000000000000006667a366", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29fb": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29fc": "0x000000000000000000000000000000000000000000000001a055690d9db80000", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29fd": "0x0000000000000000000000000000000000000000000098b51c6340e2fc2ac149", + "0x013767b34fa636c1c96995ac6658b40d98f7c3235785e7c05875d6df2d1c29fe": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x148b4105baf45e880e364b1eaf7451244748676a1c0533f0a012be2635a57f80": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x1e9fb1d1436ad4ae7bc58a66f9ff57fc5fd06d9ebd02fed281ef31ee7949fd7c": "0x0000000000000000000000000000000000000000000000000000000000002b67", + "0x1bdb887eba2858adc5b82852431dc6756f4de76b2f3a6af18c0f1a88d8bb652c": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x707fdc8eb79550a030d96e5b8e1b08bdeff909a83084eec7857e53e7512a06a0": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x02029c55f9e39d554ef1956e7f946f5d20dd840a58a3da90e1a05d1aba8b2deb": "0x0000000000000000000000000000000000000000000000000000000000000457", + "0x8758dd84495b2bec584fdae5ad5af20ba353dd68e18e381bb0daf929a94a2fe0": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xc32cdc90df96ca2127e1531258543bc2f5440a055f4359a9e1606ebe30272faa": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x8f2a15744a4cd3a653d2fe6d832f49691064146c636f72bf7410c96b3b22758f": "0x000000000000000000000000000000000000000000000000000000000000006f", + "0x3280e9563c51c1689130705dbd4abc1f90c0afbade70139e1a8760bfdf5ddf52": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d193e1e34c053384f5647e9ee337ff97f4379ed6d18de72c9b05120d570d646": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9338693306232b448a0d8b70aaf6d02effece4e40c2a46a6f142865bf1c4ecb1": "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0cc657052b967737329f90522f69f53a5533e4f312df877445b8f49a953c7d12": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xd18e8378f9867d3661ea2bea5381dacbbdcf6541636bceac95f9e8be8e1d63b5": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x36b574eb542e18a2932b42c3f7b99e0cccde75c2d7e80ac19800931af8e17fa2": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x8c0659ac40bfaf1c1baf2619164e52d89f1e92825f2d7878bf8af9474a4a4c72": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x99ad9b0432e71b81a1d6d813acf2366ab93d9375874c04eebb8b8aec72780689": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000102": "0x0000000000000000000000000000000000000000000034553b8979f2f39465aa", + "0x0000000000000000000000000000000000000000000000000000000000000100": "0x000000000000000000000000000000000000000000000001a055690d9db80000", + "0x00000000000000000000000000000000000000000000000000000000000000fb": "0x0000000000000000000000006c181edf90bfc0ce36ef5e468bbb95e20a2a4396", + "0x00000000000000000000000000000000000000000000000000000000000000ff": "0x000000000000000000000000000000000000000000000000000000000000003c", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "0x000000000000000000000000000000000000000000000000000000000000003c", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "0x000000000000000000000000000000000000000000000000000000000000012c", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae810119": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011a": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011b": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011c": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011d": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011e": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae81011f": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x9d5c16f6bf707ad9340140b49be7b716e35424665a9559fbe3cb4537ae810120": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x4ed6f05d2f79a2e4455687620ea75746c44822908b152f02caa7ffc3231b32d3": "0x0000000000000000000000000000000000000000000000000000000000001b58", + "0xb913d6ca249f756567c66f8a3c1be1d2e170f11dce77718f2102e4030b29d70b": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x5fbd57b8765145de951e788a3c7d18a82affecced761ed50d096f233f44bf5da": "0x00000000000000000000000000000000000000000000000000000000000002bc", + "0x2c4316aa12a71bbb6c8dc2f318cc08b4cc1f3cbe605ef387b2414c6d8b830ced": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x39b4718917cfd25f8d83fca11c0d1528d225ad9df97766dc96fe71e40b899d6d": "0x00000000000000000000000000000000000000000000000000000000000000c8", + "0xf4985bf5fd442cf942348c4c34ff726662fafb3889a9e294d56fd4bc7301eca5": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xcff4d13e1194cfe3da4b73030efb337c7682d0ff66b7c0f0e6571a01de794a6e": "0x000000000000000000000000000000000000000000000000000000000000005a", + "0x2c315717f01136eec76e5e246a5a4bf98f25f1afbbce24f0a261b2e742d53fda": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0xb3f0785f9661e5438fc9088dcc3a7929669449af2d520271aa50fa4f187914b4": "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x4a9e60da794364410d0b2491d17eea172d353f76ef078918e0b7e86ec7d0147c": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0xba16961eb0ee01fd0f52886e174b1d5522bcf05d": { + "balance": "0x0", + "nonce": "1", + "code": "0x60806040526004361061027c5760003560e01c806388c618551161014f578063d13f90b4116100c1578063ee5f8c8f1161007a578063ee5f8c8f1461088f578063ef8a9235146108a5578063f0594b48146108c7578063f2fde38b146108e7578063fa65cb0414610907578063fa7130831461092757600080fd5b8063d13f90b4146107cc578063d38ee161146107ec578063d6de5cf61461080c578063dfa65a7814610821578063e26fbcd11461084f578063e73e4f231461086f57600080fd5b8063b3efc9d411610113578063b3efc9d41461071f578063bc4b0dbb1461073f578063bfa600fa1461075f578063c24d01351461077f578063c5f956af14610795578063cb6007d6146107b557600080fd5b806388c618551461068a5780638a19c8bc146106aa5780638da5cb5b146106c1578063a8ea8ccb146106df578063b3ab15fb146106ff57600080fd5b8063511ab2a3116101f35780636605bfda116101ac5780636605bfda146105bc57806366bec1e4146105dc578063715018a61461061557806371ce76771461062a57806386a7a74d1461064a57806388c3ffb01461066a57600080fd5b8063511ab2a31461048457806352d1902d146104a45780635652956c146104b95780635bb65957146104fd5780635fc3d52d14610586578063627749e6146105a657600080fd5b80631b18d588116102455780631b18d588146103a75780633659cfe6146103c75780633be3a3f5146103e75780633dee22931461040757806347286b6e146104405780634f1ef2861461047157600080fd5b80628f8b35146102815780631209b1f614610300578063127effb21461032557806315981650146103585780631927c61e1461037a575b600080fd5b34801561028d57600080fd5b50610296610972565b6040516102f79190600061010082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015292915050565b60405180910390f35b34801561030c57600080fd5b506103176101005481565b6040519081526020016102f7565b34801561033157600080fd5b50610103546001600160a01b03165b6040516001600160a01b0390911681526020016102f7565b34801561036457600080fd5b5061037861037336600461300a565b6109f2565b005b34801561038657600080fd5b5061039a61039536600461306f565b610a2b565b6040516102f791906130b1565b3480156103b357600080fd5b5060fb54610340906001600160a01b031681565b3480156103d357600080fd5b506103786103e236600461310c565b610b74565b3480156103f357600080fd5b5061037861040236600461300a565b610c54565b34801561041357600080fd5b50610317610422366004613127565b600091825261010b6020908152604080842092845291905290205490565b34801561044c57600080fd5b5061031761045b36600461300a565b6000908152610108602052604090206006015490565b61037861047f36600461315f565b610c83565b34801561049057600080fd5b5061031761049f366004613127565b610d54565b3480156104b057600080fd5b50610317610d67565b3480156104c557600080fd5b506103176104d4366004613221565b6001600160a01b0391909116600090815261010d60209081526040808320938352929052205490565b34801561050957600080fd5b5061010154600090815261010860209081526040918290208251610100810184528154815260018201548184015260028201548185015260038201546060820181905260048301546080830152600583015460a0830152600683015460c083015260079092015460e09091015291514292909210158252016102f7565b34801561059257600080fd5b506103786105a136600461300a565b610e1a565b3480156105b257600080fd5b5061031760fe5481565b3480156105c857600080fd5b506103786105d736600461310c565b610ed1565b3480156105e857600080fd5b506103176105f7366004613127565b600091825261010f6020908152604080842092845291905290205490565b34801561062157600080fd5b50610378610f1d565b34801561063657600080fd5b5061037861064536600461300a565b610f53565b34801561065657600080fd5b5061037861066536600461328d565b611050565b34801561067657600080fd5b5061029661068536600461300a565b6110be565b34801561069657600080fd5b506103786106a536600461306f565b611135565b3480156106b657600080fd5b506103176101015481565b3480156106cd57600080fd5b5060c9546001600160a01b0316610340565b3480156106eb57600080fd5b5061039a6106fa36600461300a565b61119f565b34801561070b57600080fd5b5061037861071a36600461310c565b61124c565b34801561072b57600080fd5b5061037861073a36600461306f565b611299565b34801561074b57600080fd5b5061039a61075a36600461300a565b6113e7565b34801561076b57600080fd5b5061037861077a3660046132f9565b6114a2565b34801561078b57600080fd5b5061031760ff5481565b3480156107a157600080fd5b5060fc54610340906001600160a01b031681565b3480156107c157600080fd5b506103176101025481565b3480156107d857600080fd5b506103786107e736600461332f565b6114ec565b3480156107f857600080fd5b5061037861080736600461300a565b61166e565b34801561081857600080fd5b5061031761169d565b34801561082d57600080fd5b5061031761083c36600461300a565b6000908152610107602052604090205490565b34801561085b57600080fd5b5061039a61086a366004613221565b6116ac565b34801561087b57600080fd5b5061037861088a36600461338a565b611722565b34801561089b57600080fd5b5061031760fd5481565b3480156108b157600080fd5b506108ba611821565b6040516102f791906133bd565b3480156108d357600080fd5b506103176108e236600461300a565b61182b565b3480156108f357600080fd5b5061037861090236600461310c565b61189c565b34801561091357600080fd5b5061037861092236600461300a565b611934565b34801561093357600080fd5b5061094761094236600461300a565b611963565b6040805182516001600160a01b031681526020808401519082015291810151908201526060016102f7565b61097a612fc5565b61010860006101015481526020019081526020016000206040518061010001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481525050905090565b60c9546001600160a01b03163314610a255760405162461bcd60e51b8152600401610a1c906133e5565b60405180910390fd5b61010055565b60606101f4821115610a735760405162461bcd60e51b81526020600482015260116024820152700caf0c6cacac840dac2f040d8cadccee8d607b1b6044820152606401610a1c565b60008267ffffffffffffffff811115610a8e57610a8e613149565b604051908082528060200260200182016040528015610ab7578160200160208202803683370190505b50905060005b83811015610b6a5760006101096000878785818110610ade57610ade61341a565b602090810292909201358352508181019290925260409081016000908120825160608101845281546001600160a01b031681526001820154948101859052600290910154928101839052935091610b34916119d3565b905080848481518110610b4957610b4961341a565b60200260200101818152505050508080610b6290613446565b915050610abd565b5090505b92915050565b306001600160a01b037f000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d161415610bbd5760405162461bcd60e51b8152600401610a1c90613461565b7f000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d6001600160a01b0316610c0660008051602061387b833981519152546001600160a01b031690565b6001600160a01b031614610c2c5760405162461bcd60e51b8152600401610a1c906134ad565b610c3581611a81565b60408051600080825260208201909252610c5191839190611aab565b50565b60c9546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610a1c906133e5565b60fe55565b306001600160a01b037f000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d161415610ccc5760405162461bcd60e51b8152600401610a1c90613461565b7f000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d6001600160a01b0316610d1560008051602061387b833981519152546001600160a01b031690565b6001600160a01b031614610d3b5760405162461bcd60e51b8152600401610a1c906134ad565b610d4482611a81565b610d5082826001611aab565b5050565b6000610d608383611c25565b9392505050565b6000306001600160a01b037f000000000000000000000000ba16961eb0ee01fd0f52886e174b1d5522bcf05d1614610e075760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a1c565b5060008051602061387b83398151915290565b60c9546001600160a01b03163314610e445760405162461bcd60e51b8152600401610a1c906133e5565b6000610e4e611c6e565b90506000816004811115610e6457610e646133a7565b14158015610e8457506003816004811115610e8157610e816133a7565b14155b15610ec65760405162461bcd60e51b8152602060048201526012602482015271756e617661696c61626c652073746174757360701b6044820152606401610a1c565b610d50826000611c7c565b60c9546001600160a01b03163314610efb5760405162461bcd60e51b8152600401610a1c906133e5565b60fc80546001600160a01b0319166001600160a01b0392909216919091179055565b60c9546001600160a01b03163314610f475760405162461bcd60e51b8152600401610a1c906133e5565b610f516000611f1d565b565b610103546001600160a01b0316331480610f77575060c9546001600160a01b031633145b610f935760405162461bcd60e51b8152600401610a1c906134f9565b60fb5460fc546040516323b872dd60e01b81526001600160a01b039182166004820152306024820152604481018490529116906323b872dd90606401602060405180830381600087803b158015610fe957600080fd5b505af1158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611021919061351f565b5061010154600090815261010860205260408120600601805483929061104890849061353c565b909155505050565b600260015414156110a35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a1c565b60026001556110b484848484611f6f565b5050600180555050565b6110c6612fc5565b5060009081526101086020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e082015290565b600260015414156111885760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a1c565b60026001556111978282612347565b505060018055565b606060006111ac8361268d565b50905060008167ffffffffffffffff8111156111ca576111ca613149565b6040519080825280602002602001820160405280156111f3578160200160208202803683370190505b50905060005b82811015611244576112158561121083600161353c565b611c25565b8282815181106112275761122761341a565b60209081029190910101528061123c81613446565b9150506111f9565b509392505050565b60c9546001600160a01b031633146112765760405162461bcd60e51b8152600401610a1c906133e5565b61010380546001600160a01b0319166001600160a01b0392909216919091179055565b60c9546001600160a01b031633146112c35760405162461bcd60e51b8152600401610a1c906133e5565b6005811461130a5760405162461bcd60e51b8152602060048201526014602482015273696e76616c696420726174696f7320617272617960601b6044820152606401610a1c565b600060015b600581116113905760008484611326600185613554565b8181106113355761133561341a565b60008581526101076020908152604080832093820295909501359283905561010154825261010f815284822087835290529290922082905550905061137a818461353c565b925050808061138890613446565b91505061130f565b50611f4081146113e25760405162461bcd60e51b815260206004820152601f60248201527f746f74616c2073756d206f6620726174696f73206d75737420626520302e38006044820152606401610a1c565b505050565b606060006113f48361268d565b50905060008167ffffffffffffffff81111561141257611412613149565b60405190808252806020026020018201604052801561143b578160200160208202803683370190505b50905060005b8281101561124457600085815261010b602052604081209061146483600161353c565b8152602001908152602001600020548282815181106114855761148561341a565b60209081029190910101528061149a81613446565b915050611441565b610103546001600160a01b03163314806114c6575060c9546001600160a01b031633145b6114e25760405162461bcd60e51b8152600401610a1c906134f9565b610d5082826126d9565b60006114f8600161295e565b90508015611510576000805461ff0019166101001790555b6115186129eb565b611520612a1a565b60fb80546001600160a01b038089166001600160a01b03199283161790925560fc80549288169290911691909117905560fd84905560fe83905560ff82905561010660205260017f36b574eb542e18a2932b42c3f7b99e0cccde75c2d7e80ac19800931af8e17fa255600b7f9338693306232b448a0d8b70aaf6d02effece4e40c2a46a6f142865bf1c4ecb155606f7f8f2a15744a4cd3a653d2fe6d832f49691064146c636f72bf7410c96b3b22758f556104577f02029c55f9e39d554ef1956e7f946f5d20dd840a58a3da90e1a05d1aba8b2deb556004600052612b677f1e9fb1d1436ad4ae7bc58a66f9ff57fc5fd06d9ebd02fed281ef31ee7949fd7c558015611666576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60c9546001600160a01b031633146116985760405162461bcd60e51b8152600401610a1c906133e5565b60ff55565b60006116a7612a41565b905090565b6001600160a01b038216600090815261010d6020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561171557602002820191906000526020600020905b815481526020019060010190808311611701575b5050505050905092915050565b60c9546001600160a01b0316331461174c5760405162461bcd60e51b8152600401610a1c906133e5565b806117895760405162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818dbdb999a5c9b5959609a1b6044820152606401610a1c565b60fb546001600160a01b031663a9059cbb306117a3612a41565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d50919061351f565b60006116a7611c6e565b6000600361183883612ad8565b6004811115611849576118496133a7565b146118885760405162461bcd60e51b815260206004820152600f60248201526e1c9bdd5b99081b9bdd08195b991959608a1b6044820152606401610a1c565b50600090815261010c602052604090205490565b60c9546001600160a01b031633146118c65760405162461bcd60e51b8152600401610a1c906133e5565b6001600160a01b03811661192b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a1c565b610c5181611f1d565b60c9546001600160a01b0316331461195e5760405162461bcd60e51b8152600401610a1c906133e5565b60fd55565b611990604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b5060009081526101096020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600201549181019190915290565b60008060006119e18561268d565b909250905060006119f382600161353c565b600087815261010c60205260408120549192505b83811015611a61576000611a1b8883612b8d565b90506000611a298484612b8d565b905080821415611a4557611a3e600186613554565b9450611a4c565b5050611a61565b50508080611a5990613446565b915050611a07565b5083821115611a77576000945050505050610b6e565b5095945050505050565b60c9546001600160a01b03163314610c515760405162461bcd60e51b8152600401610a1c906133e5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611ade576113e283612bc9565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1757600080fd5b505afa925050508015611b47575060408051601f3d908101601f19168201909252611b449181019061356b565b60015b611baa5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a1c565b60008051602061387b8339815191528114611c195760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a1c565b506113e2838383612c65565b6000828152610108602090815260408083206006015461010f835281842085855290925282205482612710611c5a8385613584565b611c6491906135b9565b9695505050505050565b60006116a761010154612ad8565b42821015611ccc5760405162461bcd60e51b815260206004820152601960248201527f73746172742074696d65206d75737420626520667574757265000000000000006044820152606401610a1c565b60006101005411611d165760405162461bcd60e51b81526020600482015260146024820152737469636b6574207072696365206973207a65726f60601b6044820152606401610a1c565b6000610101546001611d28919061353c565b90506000611d34612a41565b905082611d4b5760ff54611d489085613554565b93505b60405180610100016040528060ff5486611d65919061353c565b815260200160fe5460fd5487611d7b919061353c565b611d859190613554565b81526020016000815260200160fd5486611d9f919061353c565b81526020016000815260200161010054815260200182815260200160008152506101086000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701559050506000600190505b60058111611e6f576000818152610107602090815260408083205486845261010f83528184208585529092529091205580611e6781613446565b915050611e2d565b5061010182905560008281526101086020526040908190206001810154600390910154915184927f2a30e4ba86a46e5ca91391bd626a9930ab4c8be23a2147bd2493e40e3dae5a6392611ed5928992909283526020830191909152604082015260600190565b60405180910390a2817f2da386d10bfbd77afdb7b434e1ef2ef549177c462f64e1a0124e1824b7b959ad82604051611f0f91815260200190565b60405180910390a250505050565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6101015460008181526101086020526040902060050154611f8f33612c8a565b611fd25760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610a1c565b60c885111561202e5760405162461bcd60e51b815260206004820152602260248201527f63616e6e6f7420627579206d6f726520323030207469636b65747320706572206044820152610e8f60f31b6064820152608401610a1c565b6001612038611c6e565b6004811115612049576120496133a7565b1461208b5760405162461bcd60e51b81526020600482015260126024820152711d1a58dad95d081cd85b194818db1bdcd95960721b6044820152606401610a1c565b600081116120d25760405162461bcd60e51b81526020600482015260146024820152737469636b6574207072696365206973207a65726f60601b6044820152606401610a1c565b6120e46120df8683613584565b612c9c565b60005b8581101561233e5760008787838181106121035761210361341a565b905060200201359050620186a08110158015612122575062030d3f8111155b6121665760405162461bcd60e51b815260206004820152601560248201527434b73b30b634b2103a34b1b5b2ba10373ab6b132b960591b6044820152606401610a1c565b60005b60058110156121c857600061217e8383612b8d565b600087815261010a60209081526040808320848452909152812080549293506001929091906121ae90849061353c565b909155508291506121c0905081613446565b915050612169565b506040805160608101825233815260208101869052908101829052610105546000906121f590600161353c565b600081815261010960209081526040808320865181546001600160a01b0319166001600160a01b03909116178155868301516001808301919091558783015160029092019190915533845261010d83528184208b8552835281842080548083018255908552838520018590558a845261010890925282206004018054939450909290919061228490849061353c565b909155505061010581905586156122e45785336001600160a01b03167f0f06f5597b79bad87d97ce23f28e3a33ae76293b8c30797f469b526241dc58248386428d8d6040516122d79594939291906135cd565b60405180910390a3612328565b604080518281526020810185905242818301529051879133917f376faa025e2ee1661fd8e99338c230b22748c20cc70f02c74042123e8e989b0e9181900360600190a35b505050808061233690613446565b9150506120e7565b50505050505050565b61235033612c8a565b6123935760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610a1c565b60648111156123f05760405162461bcd60e51b8152602060048201526024808201527f63616e6e6f7420636c61696d206d6f726520313030207469636b6574732070656044820152630e440e8f60e31b6064820152608401610a1c565b6000805b828110156125ea5760008484838181106124105761241061341a565b6020908102929092013560008181526101098452604080822061010e90955290205490935060ff169050156124795760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b6044820152606401610a1c565b60036124888260010154612ad8565b6004811115612499576124996133a7565b146124d85760405162461bcd60e51b815260206004820152600f60248201526e1c9bdd5b99081b9bdd08195b991959608a1b6044820152606401610a1c565b60006124ec826001015483600201546119d3565b9050600081116125295760405162461bcd60e51b8152602060048201526008602482015267796f75206c6f736560c01b6044820152606401610a1c565b6001820154600081815261010b602090815260408083208584529091528120549182906125569085611c25565b61256091906135b9565b600086815261010e60205260409020805460ff191660011790559050612586818861353c565b600185015460408051918252602082018690528101839052909750859033907f9e80c048bc588b388047ffc6e8153e7c11aa34312de7ed62e1858ff3a44ddce89060600160405180910390a3505050505080806125e290613446565b9150506123f4565b508061010260008282546125fe9190613554565b909155505060fb5460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b15801561264f57600080fd5b505af1158015612663573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612687919061351f565b50505050565b600081815261010c602052604081205481906305f5e10081106126b7575060079360089350915050565b620f424081106126cd5750600693849350915050565b50600593849350915050565b610103546001600160a01b03163314806126fd575060c9546001600160a01b031633145b6127195760405162461bcd60e51b8152600401610a1c906134f9565b6002612723611c6e565b6004811115612734576127346133a7565b1461277a5760405162461bcd60e51b81526020600482015260166024820152751d1a58dad95d081cd85b19481b9bdd0818db1bdcd95960521b6044820152606401610a1c565b61010154620186a060005b600581101561280857600a61279b82600161353c565b6127a6906005613554565b6127b190600a6136f5565b6127de8787856040516020016127c993929190613701565b60405160208183030381529060405283612dc9565b6127e89190613584565b6127f2908461353c565b925050808061280090613446565b915050612785565b50600082815261010c6020526040812082905580805b60058110156128df57600061283482600161353c565b905060006128578661284785600161353c565b612852906005613554565b612b8d565b600088815261010a6020908152604080832084845290915281205491925090612881908690613554565b905061288d818661353c565b600089815261010b602090815260408083208784529091529020829055945080156128c9576128bc8884611c25565b6128c6908761353c565b95505b50505080806128d790613446565b91505061281e565b508161010260008282546128f3919061353c565b90915550506000848152610108602090815260409182902042600282018190556007909101859055825190815290810185905285917f6925cd760a81dc7db62428027f06d729ab108ce06b2673c4c338c386e8652799910160405180910390a2611666426001611c7c565b60008054610100900460ff16156129a5578160ff1660011480156129815750303b155b61299d5760405162461bcd60e51b8152600401610a1c90613713565b506000919050565b60005460ff8084169116106129cc5760405162461bcd60e51b8152600401610a1c90613713565b506000805460ff191660ff92909216919091179055600190565b919050565b600054610100900460ff16612a125760405162461bcd60e51b8152600401610a1c90613761565b610f51612e04565b600054610100900460ff16610f515760405162461bcd60e51b8152600401610a1c90613761565b60fb546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b158015612a8957600080fd5b505afa158015612a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac1919061356b565b90506101025481612ad29190613554565b91505090565b600081612ae757506000919050565b600082815261010860209081526040918290208251610100810184528154815260018201549281019290925260028101549282018390526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290612b84578051421015612b665750600492915050565b4281602001511115612b7b5750600192915050565b50600292915050565b50600392915050565b6000612b9a82600161353c565b612ba590600a6136f5565b612baf90846137ac565b60008381526101066020526040902054610d60919061353c565b6001600160a01b0381163b612c365760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a1c565b60008051602061387b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612c6e83612e34565b600082511180612c7b5750805b156113e2576126878383612e74565b6000612c9582612f68565b1592915050565b60006064612cab601484613584565b612cb591906135b9565b60fb546040516323b872dd60e01b8152336004820152306024820152604481018590529192506001600160a01b0316906323b872dd90606401602060405180830381600087803b158015612d0857600080fd5b505af1158015612d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d40919061351f565b5060fb5460fc5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b158015612d9157600080fd5b505af1158015612da5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e2919061351f565b600081434185604051602001612de1939291906137ec565b6040516020818303038152906040528051906020012060001c610d6091906137ac565b600054610100900460ff16612e2b5760405162461bcd60e51b8152600401610a1c90613761565b610f5133611f1d565b612e3d81612bc9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612edc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610a1c565b600080846001600160a01b031684604051612ef7919061382b565b600060405180830381855af49150503d8060008114612f32576040519150601f19603f3d011682016040523d82523d6000602084013e612f37565b606091505b5091509150612f5f828260405180606001604052806027815260200161389b60279139612f8c565b95945050505050565b6000813b63ffffffff8116151580610d60575050506001600160a01b031632141590565b60608315612f9b575081610d60565b825115612fab5782518084602001fd5b8160405162461bcd60e51b8152600401610a1c9190613847565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006020828403121561301c57600080fd5b5035919050565b60008083601f84011261303557600080fd5b50813567ffffffffffffffff81111561304d57600080fd5b6020830191508360208260051b850101111561306857600080fd5b9250929050565b6000806020838503121561308257600080fd5b823567ffffffffffffffff81111561309957600080fd5b6130a585828601613023565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156130e9578351835292840192918401916001016130cd565b50909695505050505050565b80356001600160a01b03811681146129e657600080fd5b60006020828403121561311e57600080fd5b610d60826130f5565b6000806040838503121561313a57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561317257600080fd5b61317b836130f5565b9150602083013567ffffffffffffffff8082111561319857600080fd5b818501915085601f8301126131ac57600080fd5b8135818111156131be576131be613149565b604051601f8201601f19908116603f011681019083821181831017156131e6576131e6613149565b816040528281528860208487010111156131ff57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000806040838503121561323457600080fd5b61323d836130f5565b946020939093013593505050565b60008083601f84011261325d57600080fd5b50813567ffffffffffffffff81111561327557600080fd5b60208301915083602082850101111561306857600080fd5b600080600080604085870312156132a357600080fd5b843567ffffffffffffffff808211156132bb57600080fd5b6132c788838901613023565b909650945060208701359150808211156132e057600080fd5b506132ed8782880161324b565b95989497509550505050565b6000806020838503121561330c57600080fd5b823567ffffffffffffffff81111561332357600080fd5b6130a58582860161324b565b600080600080600060a0868803121561334757600080fd5b613350866130f5565b945061335e602087016130f5565b94979496505050506040830135926060810135926080909101359150565b8015158114610c5157600080fd5b60006020828403121561339c57600080fd5b8135610d608161337c565b634e487b7160e01b600052602160045260246000fd5b60208101600583106133df57634e487b7160e01b600052602160045260246000fd5b91905290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060001982141561345a5761345a613430565b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1d5b985d5d1a1bdc9a5e995960a21b604082015260600190565b60006020828403121561353157600080fd5b8151610d608161337c565b6000821982111561354f5761354f613430565b500190565b60008282101561356657613566613430565b500390565b60006020828403121561357d57600080fd5b5051919050565b600081600019048311821515161561359e5761359e613430565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826135c8576135c86135a3565b500490565b85815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600181815b8085111561364c57816000190482111561363257613632613430565b8085161561363f57918102915b93841c9390800290613616565b509250929050565b60008261366357506001610b6e565b8161367057506000610b6e565b81600181146136865760028114613690576136ac565b6001915050610b6e565b60ff8411156136a1576136a1613430565b50506001821b610b6e565b5060208310610133831016604e8410600b84101617156136cf575081810a610b6e565b6136d98383613611565b80600019048211156136ed576136ed613430565b029392505050565b6000610d608383613654565b82848237909101908152602001919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000826137bb576137bb6135a3565b500690565b60005b838110156137db5781810151838201526020016137c3565b838111156126875750506000910152565b8381526bffffffffffffffffffffffff198360601b1660208201526000825161381c8160348501602087016137c0565b91909101603401949350505050565b6000825161383d8184602087016137c0565b9190910192915050565b60208152600082518060208401526138668160408501602087016137c0565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209d47dbb0d0b40b86512f67b199e4994843d4cadf222d9d8096b9d6655631957364736f6c63430008090033", + "storage": {} + }, + "0x6c181edf90bfc0ce36ef5e468bbb95e20a2a4396": { + "balance": "0x0", + "nonce": "1", + "code": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80636ef8d66d116100de578063983b2d5611610097578063aa271e1a11610071578063aa271e1a146104b2578063b88d4fde146104d8578063dd62ed3e1461059e578063eb795549146105cc5761018e565b8063983b2d5614610458578063986502751461047e578063a9059cbb146104865761018e565b80636ef8d66d146103c857806370a08231146103d057806379cc6790146103f657806382dc1ec4146104225780638456cb591461044857806395d89b41146104505761018e565b80633f4ba83a1161014b57806342842e0e1161012557806342842e0e1461034757806342966c681461037d57806346fbf68e1461039a5780635c975abb146103c05761018e565b80633f4ba83a146102e557806340c10f19146102ef578063423f6cef1461031b5761018e565b806301ffc9a71461019357806306fdde03146101ce578063095ea7b31461024b57806318160ddd1461027757806323b872dd14610291578063313ce567146102c7575b600080fd5b6101ba600480360360208110156101a957600080fd5b50356001600160e01b031916610687565b604080519115158252519081900360200190f35b6101d66106a6565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102105781810151838201526020016101f8565b50505050905090810190601f16801561023d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ba6004803603604081101561026157600080fd5b506001600160a01b03813516906020013561073c565b61027f6107a1565b60408051918252519081900360200190f35b6101ba600480360360608110156102a757600080fd5b506001600160a01b038135811691602081013590911690604001356107a7565b6102cf61080e565b6040805160ff9092168252519081900360200190f35b6102ed610817565b005b6101ba6004803603604081101561030557600080fd5b506001600160a01b0381351690602001356108f7565b6102ed6004803603604081101561033157600080fd5b506001600160a01b038135169060200135610953565b6102ed6004803603606081101561035d57600080fd5b506001600160a01b03813581169160208101359091169060400135610971565b6102ed6004803603602081101561039357600080fd5b5035610991565b6101ba600480360360208110156103b057600080fd5b50356001600160a01b031661099e565b6101ba6109b7565b6102ed6109c0565b61027f600480360360208110156103e657600080fd5b50356001600160a01b03166109cb565b6102ed6004803603604081101561040c57600080fd5b506001600160a01b0381351690602001356109e6565b6102ed6004803603602081101561043857600080fd5b50356001600160a01b03166109f0565b6102ed610a40565b6101d6610b1a565b6102ed6004803603602081101561046e57600080fd5b50356001600160a01b0316610b7b565b6102ed610bcb565b6101ba6004803603604081101561049c57600080fd5b506001600160a01b038135169060200135610bd4565b6101ba600480360360208110156104c857600080fd5b50356001600160a01b0316610c32565b6102ed600480360360808110156104ee57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561052957600080fd5b82018360208201111561053b57600080fd5b8035906020019184600183028401116401000000008311171561055d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c45945050505050565b61027f600480360360408110156105b457600080fd5b506001600160a01b0381358116916020013516610ca1565b6102ed600480360360608110156105e257600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561061257600080fd5b82018360208201111561062457600080fd5b8035906020019184600183028401116401000000008311171561064657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ccc945050505050565b6001600160e01b03191660009081526020819052604090205460ff1690565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107325780601f1061070757610100808354040283529160200191610732565b820191906000526020600020905b81548152906001019060200180831161071557829003601f168201915b5050505050905090565b60065460009060ff16156107905760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b61079a8383610d21565b9392505050565b60035490565b60065460009060ff16156107fb5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610806848484610d2e565b949350505050565b60095460ff1690565b6108203361099e565b61085e57604051600160e51b62461bcd02815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b60065460ff166108b85760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6006805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600061090233610c32565b61094057604051600160e51b62461bcd02815260040180806020018281038252603081526020018061178e6030913960400191505060405180910390fd5b61094a8383610d85565b50600192915050565b61096d828260405180602001604052806000815250610ccc565b5050565b61098c83838360405180602001604052806000815250610c45565b505050565b61099b3382610e7a565b50565b60006109b160058363ffffffff610f6e16565b92915050565b60065460ff1690565b6109c933610fd8565b565b6001600160a01b031660009081526001602052604090205490565b61096d8282611020565b6109f93361099e565b610a3757604051600160e51b62461bcd02815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b61099b81611065565b610a493361099e565b610a8757604051600160e51b62461bcd02815260040180806020018281038252603081526020018061173c6030913960400191505060405180910390fd5b60065460ff1615610ad85760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6006805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b60088054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107325780601f1061070757610100808354040283529160200191610732565b610b8433610c32565b610bc257604051600160e51b62461bcd02815260040180806020018281038252603081526020018061178e6030913960400191505060405180910390fd5b61099b816110ad565b6109c9336110f5565b60065460009060ff1615610c285760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b61079a838361113d565b60006109b160048363ffffffff610f6e16565b610c508484846107a7565b50610c5d8484848461114a565b610c9b57604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061170e602e913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610cd68383610bd4565b50610ce33384848461114a565b61098c57604051600160e51b62461bcd02815260040180806020018281038252602e81526020018061170e602e913960400191505060405180910390fd5b600061094a338484611283565b6000610d3b848484611375565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610d7b918691610d76908663ffffffff6114bf16565b611283565b5060019392505050565b6001600160a01b038216610de35760408051600160e51b62461bcd02815260206004820152601e60248201527f4b4950373a206d696e7420746f20746865207a65726f20616464726573730000604482015290519081900360640190fd5b600354610df6908263ffffffff61150116565b6003556001600160a01b038216600090815260016020526040902054610e22908263ffffffff61150116565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610ed85760408051600160e51b62461bcd02815260206004820181905260248201527f4b4950373a206275726e2066726f6d20746865207a65726f2061646472657373604482015290519081900360640190fd5b600354610eeb908263ffffffff6114bf16565b6003556001600160a01b038216600090815260016020526040902054610f17908263ffffffff6114bf16565b6001600160a01b0383166000818152600160209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610fb857604051600160e51b62461bcd0281526004018080602001828103825260228152602001806118036022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610fe960058263ffffffff61155e16565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b61102a8282610e7a565b6001600160a01b03821660009081526002602090815260408083203380855292529091205461096d918491610d76908563ffffffff6114bf16565b61107660058263ffffffff6115c816565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6110be60048263ffffffff6115c816565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61110660048263ffffffff61155e16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600061094a338484611375565b600061115e846001600160a01b031661164c565b61116a57506001610806565b604051600160e11b634e8c461102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a1694639d188c229490938c938b938b939260a4019060208501908083838e5b838110156111e75781810151838201526020016111cf565b50505050905090810190601f1680156112145780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561123657600080fd5b505af115801561124a573d6000803e3d6000fd5b505050506040513d602081101561126057600080fd5b50516001600160e01b031916600160e11b634e8c46110214915050949350505050565b6001600160a01b0383166112cb57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118256023913960400191505060405180910390fd5b6001600160a01b03821661131357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806116ed6021913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166113bd57604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117df6024913960400191505060405180910390fd5b6001600160a01b03821661140557604051600160e51b62461bcd02815260040180806020018281038252602281526020018061176c6022913960400191505060405180910390fd5b6001600160a01b03831660009081526001602052604090205461142e908263ffffffff6114bf16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611463908263ffffffff61150116565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600061079a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611652565b60008282018381101561079a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6115688282610f6e565b6115a657604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117be6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6115d28282610f6e565b156116275760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3b151590565b600081848411156116e457604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116a9578181015183820152602001611691565b50505050905090810190601f1680156116d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4b4950373a20617070726f766520746f20746865207a65726f20616464726573734b4950373a207472616e7366657220746f206e6f6e204b495037526563656976657220696d706c656d656e746572506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654b4950373a207472616e7366657220746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654b4950373a207472616e736665722066726f6d20746865207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734b4950373a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820438f68d89f12c40b58a0ef06f1909528757fb63aec68b8905deaf72abf29da770029", + "storage": { + "0xe1dce52d90c660b37d2ec38e49291439076e17aeb6454f2ba02ec6537e2bd83d": "0x00000000000000000000000000000000000000000000cd0a57ecbad5efbf26f3" + } + }, + "0x99abc3bbd2f001ce629bc4de078ba8f5e80f4af9": { + "balance": "0x1fd6eea185a36fd36f2", + "nonce": "173579", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0xeb1860534947f758d97d972c2188f52e46bc813bc2adfed557496cbe8ffac255", + "number": "156486753", + "timestamp": "1718068072", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x30f8e88302a60b850ba43b74008309a3d694c75154e096d7a123b1c7f3200dcf120f304ccc09809499abc3bbd2f001ce629bc4de078ba8f5e80f4af9b864bfa600fa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020abddc9cf8b06d671cba78abe43617cec206059676d6f4acaaccf3b68d3ec9423f847f8458207f5a0735aaad5235fcc1c97f28681bbc80491d636485f78d6c2403753d319e7f01d2ca06238b122ad5562dfb161152417b2b9efdf84f56280001ca05138cebb7acc43a7", + "result": { + "from": "0x99abc3bbd2f001ce629bc4de078ba8f5e80f4af9", + "gas": "0x9a3d6", + "gasUsed": "0x655db", + "to": "0xc75154e096d7a123b1c7f3200dcf120f304ccc09", + "input": "0xbfa600fa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020abddc9cf8b06d671cba78abe43617cec206059676d6f4acaaccf3b68d3ec9423", + "calls": [ + { + "from": "0xc75154e096d7a123b1c7f3200dcf120f304ccc09", + "gas": "0x8f35e", + "gasUsed": "0x5c99b", + "to": "0xba16961eb0ee01fd0f52886e174b1d5522bcf05d", + "input": "0xbfa600fa00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020abddc9cf8b06d671cba78abe43617cec206059676d6f4acaaccf3b68d3ec9423", + "calls": [ + { + "from": "0xc75154e096d7a123b1c7f3200dcf120f304ccc09", + "gas": "0x6f795", + "gasUsed": "0x9b7", + "to": "0x6c181edf90bfc0ce36ef5e468bbb95e20a2a4396", + "input": "0x70a08231000000000000000000000000c75154e096d7a123b1c7f3200dcf120f304ccc09", + "output": "0x00000000000000000000000000000000000000000000cd0a57ecbad5efbf26f3", + "type": "STATICCALL" + } + ], + "value": "0x0", + "type": "DELEGATECALL" + } + ], + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type38_cancel.json b/node/cn/tracers/testdata/call_tracer/type38_cancel.json new file mode 100644 index 000000000..6fe62c9cb --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type38_cancel.json @@ -0,0 +1,75 @@ + { + "_comment": "chainId 1001 txHash 0xa8794bfef57dd03a17fcadea8cf74c5179549a2e4f9ee3775101edb6492b54ac", + "genesis": { + "alloc": { + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b57621a31dd80800", + "nonce": "8", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x05159b99ccef376538405123416489387231cae8402d72abe83dc9fc940ebe05", + "number": "156322405", + "timestamp": "1717903641", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x38f86808850ba43b740082cd14947f0546832758f61410e81a94d7a07d55b1dfd278f847f8458207f5a007c28a6ef5274d3077c886854a4ce139c5fd8e4800c440b40008d75344956500a01d7f4f4068dc8867944eb4223efcf186af1c9f1b031e82632705d9388809e6a1", + "result": { + "from": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "gas": "0xcd14", + "gasUsed": "0x5208", + "to": "0x7f0546832758f61410e81a94d7a07d55b1dfd278", + "input": "0x", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer/type48_anchor.json b/node/cn/tracers/testdata/call_tracer/type48_anchor.json new file mode 100644 index 000000000..2890eb1c3 --- /dev/null +++ b/node/cn/tracers/testdata/call_tracer/type48_anchor.json @@ -0,0 +1,75 @@ + { + "_comment": "chainId 1001 txHash 0x67b770bc17f2cc96f61a11a4abf5bfe8e07b8ff82de42629be9f269784fe7f95", + "genesis": { + "alloc": { + "0x34cf5835054de547d57cc9cbc9785d036f62758d": { + "balance": "0x784bf0f594ca0ce90", + "nonce": "1126050", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "number": "121156333", + "timestamp": "1682733436", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x48f9012183112ea285ae9f7bcc00830186a09434cf5835054de547d57cc9cbc9785d036f62758db8b3f8b180b8aef8aca0b398aee6a16b85dc6402e87136d999f2896d2ee5110faeb6ac5c7ba4e2127373a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470a044699aca1604e0fe1949804fdaa267c2305fd5cb64a16b02d70c44e3b89f118ea0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470a06a5279c5b7cc4af88d9d35ac636a43d66c7e473965bc223c76a85b9c9edf315384015abe043c80f847f8458207f6a0d31409c99396b0238dc0af9e8f629586712473c632acbd0fd861ca14541584b8a00494b923336e202a1db70cc2704a6ce4009f5066efd5a6a5e6abfb5ca341fb2d", + "result": { + "from": "0x34cf5835054de547d57cc9cbc9785d036f62758d", + "gas": "0x186a0", + "gasUsed": "0x97f4", + "to": "0x34cf5835054de547d57cc9cbc9785d036f62758d", + "input": "0xf8b180b8aef8aca0b398aee6a16b85dc6402e87136d999f2896d2ee5110faeb6ac5c7ba4e2127373a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470a044699aca1604e0fe1949804fdaa267c2305fd5cb64a16b02d70c44e3b89f118ea0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470a06a5279c5b7cc4af88d9d35ac636a43d66c7e473965bc223c76a85b9c9edf315384015abe043c80", + "value": "0x0", + "type": "CALL" + } +} diff --git a/node/cn/tracers/testdata/call_tracer_call.json b/node/cn/tracers/testdata/call_tracer_call.json deleted file mode 100644 index 30339db60..000000000 --- a/node/cn/tracers/testdata/call_tracer_call.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with CALL opcode from an internal transaction. The associated code is under testdata/contracts/Caller.sol.", - "context": { - "blockscore": "0x1", - "number": "36881026", - "timestamp": "1598436455" - }, - "genesis": { - "alloc": { - "0x13cf0d18bcb898efd4e85ae2bb65a443ab86023c": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c605f76c14602d575b600080fd5b60336035565b005b56fea165627a7a7230582014f02734fa3172fdb1bcf42f334c98ade1dfeb64d80a33e3e3b5dd800d93b2700029", - "nonce": "1", - "storage": {} - }, - "0x3693da93b9d5e63cb4804b8813c8214a76724485": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80633917b3df14610030575b600080fd5b61003861003a565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106101285780518252602082019150602081019050602083039250610105565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461018a576040519150601f19603f3d011682016040523d82523d6000602084013e61018f565b606091505b50505056fea165627a7a7230582092dbb50943cd012a65e5c4eed7d1446a8a47878bc1d45f0136a022600ef305ee0029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000013cf0d18bcb898efd4e85ae2bb65a443ab86023c" - } - }, - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x4427f0512683bc00", - "code": "0x", - "nonce": "28", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841575970ab960a48bbd97ee31d7e215f6affdc020475a26af51f7242dee2b54513225f9d0ed091de4149d7e4e69673bbf799ea9c862922339524a46a3b7ab1718501f8c9b841cf8256be2669661dbe525c416bde02781a8432ad73ee19151a30d50ad8d8b7f43925355efc5c1ed1a0fc15b27030075b2da019acd2ea7e7ddba7c3b9ebd62ea000b841b42238889077e11ce7b1ef0177efd213e087faa663c220c4130e7026f10ebb6065c03b826332c3e3579e2371e49453778dec1df7ab72b46c6a5157e642d7e46d00b8419c3ef890c1985dc743a937f589e632ca25fd9e761fb7e6fd4d29fb3db8be3ca2326640f936f3ef66f4f1d1014f69af3a91c840a35af75335aed147dc8c0e6d4100", - "hash": "0x85c29014bc3e11442e06507dc443110becfb63e69fe030d0d104f66a9f705db2", - "number": "36881025", - "reward": "0xa86fd667c6a340c53cc5d796ba84dbe1f29cb2f7", - "stateRoot": "0xb9210471ce5d8d882d65a832283abb6d1385daecb9b281cbd672f44173a51368", - "timestamp": "1598436454", - "timestampFoS": 1, - "totalBlockScore": "0x232c282", - "voteData": "0x" - }, - "input": "0xf86a1c8505d21dba00825955943693da93b9d5e63cb4804b8813c8214a7672448580843917b3df8207f5a0f08a793be73b491824c2933dbd47a4e10ed0c12014f3bf3c932366277c6591c1a01559152bb56e888d299ee4901066d90edc9e3fa76d9158e5a939ae2ce9e640b0", - "result": { - "calls": [ - { - "from": "0x3693da93b9d5e63cb4804b8813c8214a76724485", - "gas": "0xb3", - "gasUsed": "0x7a", - "input": "0xc605f76c", - "output": "0x", - "to": "0x13cf0d18bcb898efd4e85ae2bb65a443ab86023c", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x63d", - "gasUsed": "0x5955", - "input": "0x3917b3df", - "output": "0x", - "to": "0x3693da93b9d5e63cb4804b8813c8214a76724485", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_call_overflow.json b/node/cn/tracers/testdata/call_tracer_call_overflow.json deleted file mode 100644 index 5e3f2bf26..000000000 --- a/node/cn/tracers/testdata/call_tracer_call_overflow.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "context": { - "blockscore": "0x1", - "number": "3913", - "timestamp": "1659432049" - }, - "genesis": { - "alloc": { - "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d": { - "balance": "0x446c3b15f9926687d2c40534fdb5e1dc73ea5ac900", - "code": "0x", - "nonce": "13", - "storage": {} - }, - "0xa3e50f7b8f8df9f8a2044929b4c85dbe05331574": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80634d536fe314602d575b600080fd5b60336035565b005b5a33600067ffffffffffffffe0600067fffffffffffffff060008587f15050507f9f9fb434574749b74458e0ddc3cf5fd5bdb1b009c8615e825606b53724576f3560405160405180910390a156fea2646970667358221220dab98f1cf135b26456b5cd0d5c8fbb888a2403ab2d1ab131f3f73ae6ae4578d464736f6c634300080f0033", - "nonce": "1", - "storage": {} - } - }, - "baseFeePerGas": "0x5d21dba00", - "blockscore": "0x1", - "config": { - "chainId": 1000, - "deriveShaImpl": 0, - "ethTxTypeCompatibleBlock": 0, - "governance": { - "governanceMode": "none", - "governingNode": "0x0000000000000000000000000000000000000000", - "kip71": { - "basefeedenominator": 20, - "gastarget": 30000000, - "lowerboundbasefee": 25000000000, - "maxblockgasusedforbasefee": 60000000, - "upperboundbasefee": 750000000000 - }, - "reward": { - "deferredTxFee": false, - "minimumStake": 2000000, - "mintingAmount": 0, - "proposerUpdateInterval": 3600, - "ratio": "100/0/0", - "stakingUpdateInterval": 86400, - "useGiniCoeff": false - } - }, - "istanbul": { - "epoch": 604800, - "policy": 0, - "sub": 21 - }, - "istanbulCompatibleBlock": 0, - "londonCompatibleBlock": 0, - "magmaCompatibleBlock": 0, - "unitPrice": 0 - }, - "extraData": "0xd683010900846b6c617986676f312e3138856c696e7578000000000000000000f89ed5944cefb5df9a128512c8c5cdfab717ff1dcd10dc7db8418cfa643013ca673b223c3d9a35ba07cebf612213028a30b9c0ccd96fbe7c1fa31371f983ae990082656dc03d7b5e25c249a93ddd1199c1b260617c06130add7800f843b841461d4c1b138b8cc6e9d5b6e070806fa8ea2a82e98a3ac13def0d0eec7f04a8e95f16ea4af88b744831c6122d2bcbd1b53a7113fc13ca0afe437c62f0f7fc2b5700", - "hash": "0x357589a2ea4f044cc2ffd99a924de6e69d9dea578d086b033f9ea3b5fcc9f68c", - "number": "3912", - "reward": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "stateRoot": "0x9763fb62c71c0c2b0abf30c64ad8c25500b7791cded830e09dcf386caf7beb2e", - "timestamp": "1659432048", - "timestampFoS": 29, - "totalBlockScore": "0xf49" - }, - "input": "0xf86a0d850ba43b74008259f694a3e50f7b8f8df9f8a2044929b4c85dbe0533157480844d536fe38207f4a0c918375568fec81db5396587237954e1c8331c8b426257ac880607efc1e7bdd4a039d7c870e8acae1720c7534230542bc292d188fca7fa1b0b056a56c2f11f4a09", - "result": { - "calls": [ - { - "from": "0xa3e50f7b8f8df9f8a2044929b4c85dbe05331574", - "input": "0x", - "output": "0x", - "to": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "gas": "0x65e", - "gasUsed": "0x59f6", - "input": "0x4d536fe3", - "output": "0x", - "to": "0xa3e50f7b8f8df9f8a2044929b4c85dbe05331574", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_callcode.json b/node/cn/tracers/testdata/call_tracer_callcode.json deleted file mode 100644 index fa5e2ade7..000000000 --- a/node/cn/tracers/testdata/call_tracer_callcode.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with CALLCODE opcode from an internal transaction. The associated code is under testdata/contracts/CallCodeCaller.sol. CALLCODE opcode is deprecated, so v0.4.24 is used.", - "context": { - "blockscore": "0x1", - "number": "36881545", - "timestamp": "1598436974" - }, - "genesis": { - "alloc": { - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x43f8c04b7006fa00", - "code": "0x", - "nonce": "33", - "storage": {} - }, - "0xb02213def2a4577c6102126146101f012d0162da": { - "balance": "0x0", - "code": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633917b3df14610046575b600080fd5b34801561005257600080fd5b5061005b61005d565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b8381101561014557808201518184015260208101905061012a565b50505050905090810190601f1680156101725780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af2915050505600a165627a7a72305820312a550e51077152626a2cd47ba0ef613ea6a7b58ad0e46f86e3ca61e56087f80029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000d73f34428098b44a589f13ad15a0e3d2efe92dbd" - } - }, - "0xd73f34428098b44a589f13ad15a0e3d2efe92dbd": { - "balance": "0x0", - "code": "0x608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c605f76c146044575b600080fd5b348015604f57600080fd5b5060566058565b005b5600a165627a7a72305820b237f1e131838cc642e4ef25643894bb38f01387287e61967a2fb0f238d27e5f0029", - "nonce": "1", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841dd3ecc5dd970176b41a15534ec7eec1f996fae3d6f08b4bb7fae3a8b262231673fec59303a2c0c548764cbf7419e574d4513e44802aeed49d3eb277786319f3700f8c9b8412bd9e8b762900201b78493a972ece4413199fc9c1d10ef9474074b5755d9a116268313f9410b6f3d81aa0773baa46d8f834f988efadea3f201484684878c688a00b84176c4999a869ff13912e985f005098232468c85080a2d622220c49185f61f646f3d33086bab0fd92dfee4ece2a9f68016f42e52b3fb6a49a975cceaac37202ccc01b841e310d0892e89b2202532e81488352b5f85ea344845402896788161d6567655f829a6cd17235d93ce5f482336cad1e9bfe8d269dad175ebd5abdfee3b3c2d79af00", - "hash": "0xffc1c6f370644bc3103dbe81e80abe013a1952108256cc1fc05fd044c79a4972", - "number": "36881544", - "reward": "0xb2bd3178affccd9f9f5189457f1cad7d17a01c9d", - "stateRoot": "0x2445fc0a91bac7f0ca6ed237a4c8562e17a1cd188661d78c449a91c1b7d7ab94", - "timestamp": "1598436973", - "timestampFoS": 1, - "totalBlockScore": "0x232c489", - "voteData": "0x" - }, - "input": "0xf86a218505d21dba008259b094b02213def2a4577c6102126146101f012d0162da80843917b3df8207f6a0035414b72bae588d1f0707964a0e95fd6517b0e459f4cc10719093067263931fa0195cbad5e5b98d6cd3b086055c4c0d6c80ff8ba6efa89edecb938a32114c5890", - "result": { - "calls": [ - { - "from": "0xb02213def2a4577c6102126146101f012d0162da", - "gas": "0x95", - "gasUsed": "0x85", - "input": "0xc605f76c00000000000000000000000000000000000000000000000000000000", - "output": "0x", - "to": "0xd73f34428098b44a589f13ad15a0e3d2efe92dbd", - "type": "CALLCODE", - "value": "0x0" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x698", - "gasUsed": "0x59b0", - "input": "0x3917b3df", - "output": "0x", - "to": "0xb02213def2a4577c6102126146101f012d0162da", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_create.json b/node/cn/tracers/testdata/call_tracer_create.json deleted file mode 100644 index 0f5213992..000000000 --- a/node/cn/tracers/testdata/call_tracer_create.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "context": { - "difficulty": "3755480783", - "gasLimit": "5401723", - "miner": "0xd049bfd667cb46aa3ef5df0da3e57db3be39e511", - "number": "2294702", - "timestamp": "1513676146" - }, - "genesis": { - "alloc": { - "0x13e4acefe6a6700604929946e70e6443e4e73447": { - "balance": "0xcf3e0938579f000", - "code": "0x", - "nonce": "9", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "3757315409", - "extraData": "0x566961425443", - "gasLimit": "5406414", - "hash": "0xae107f592eebdd9ff8d6ba00363676096e6afb0e1007a7d3d0af88173077378d", - "miner": "0xd049bfd667cb46aa3ef5df0da3e57db3be39e511", - "mixHash": "0xc927aa05a38bc3de864e95c33b3ae559d3f39c4ccd51cef6f113f9c50ba0caf1", - "nonce": "0x93363bbd2c95f410", - "number": "2294701", - "stateRoot": "0x6b6737d5bde8058990483e915866bd1578014baeff57bd5e4ed228a2bfad635c", - "timestamp": "1513676127", - "totalDifficulty": "7160808139332585" - }, - "input": "0xf907ef098504e3b29200830897be8080b9079c606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a1129a01060f46676a5dff6f407f0f51eb6f37f5c8c54e238c70221e18e65fc29d3ea65a0557b01c50ff4ffaac8ed6e5d31237a4ecbac843ab1bfe8bb0165a0060df7c54f", - "result": { - "from": "0x13e4acefe6a6700604929946e70e6443e4e73447", - "gas": "0x5e106", - "gasUsed": "0x897be", - "input": "0x606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a11", - "output": "0x606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029", - "to": "0x7dc9c9730689ff0b0fd506c67db815f12d90a448", - "type": "CREATE", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_create2.json b/node/cn/tracers/testdata/call_tracer_create2.json deleted file mode 100644 index 7b7ee52ca..000000000 --- a/node/cn/tracers/testdata/call_tracer_create2.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with CREATE2 opcode from an internal transaction. The associated code is under testdata/contracts/Factory2.", - "context": { - "blockscore": "0x1", - "number": "36876604", - "timestamp": "1598432033" - }, - "genesis": { - "alloc": { - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x4525498b355eaa00", - "code": "0x", - "nonce": "6", - "storage": {} - }, - "0xe213d8b68ca3d01e51a6dba669de59ac9a8359ee": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80639c4ae2d014610030575b600080fd5b6100f36004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506100f5565b005b6000818351602085016000f59050803b61010e57600080fd5b50505056fea165627a7a72305820a1cbb9ecdbd4f0aa7f20d87013b5335e4b32f8984ab798ac97047ec0912eae550029", - "nonce": "1", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841a819a93bf573bc4d9c6413d78b9b2c2b2df3f2c7777cd16b2ffabaa010d1e3944ac4488da66dee1cd1b533e63eb7f6404007847f2028bfb2b324f61424edf3ca00f8c9b841bc8dd80238d9084079b2127dc8892556b566a7ea9f95773cbfe792c9910c3e61137f24c6022cd63d3447d121ffb51983985d45620a4cdc98c1979edd81a5bc5e01b841fefecba12ed526afece2856c4b95d8bc3d10f5fb88e437974bef5437237c11582c3e61c496a051e9de690c86473bc94337cf934214a7ce0994e6f74083fd48e200b8416fcedc58ae6671231a9f7ab4f51220ad2906a2df532d4ec157eec946c499e9de4067fc6d8941cf60f49655a0a177d240110fa70fa5bbb6ca471c797babfd47ca01", - "hash": "0x6165aca054f8824ed621544660655989b25d5845822c4371520c0a01c14d464c", - "number": "36876603", - "reward": "0x6559a7b6248b342bc11fbcdf9343212bbc347edc", - "stateRoot": "0xab73fed8bad7912d547576abf1ad543cafa3e52607d9323e507f1c824c6d1119", - "timestamp": "1598432032", - "timestampFoS": 1, - "totalBlockScore": "0x232b13c", - "voteData": "0x" - }, - "input": "0xf9016d068505d21dba008301231094e213d8b68ca3d01e51a6dba669de59ac9a8359ee80b901049c4ae2d00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000000000816080604052348015600f57600080fd5b50604051602080608183398101806040526020811015602d57600080fd5b810190808051906020019092919050505050603580604c6000396000f3fe6080604052600080fdfea165627a7a72305820c577c5325e4c667e8439f998d616e74110a14fb5b185afe46d8443bbfd9c3d710029000000000000000000000000000000000000000000000000000000000000008207f5a09c9cde7fbfd4ac35126b4c5ec9295637811da8b2537f8b00c5feacaaf6d827c4a02397b988a87a1f2d25fa89648bcecf046c83d8dc8086334ebaa47952912f9a04", - "result": { - "calls": [ - { - "from": "0xe213d8b68ca3d01e51a6dba669de59ac9a8359ee", - "gas": "0x2c4d", - "gasUsed": "0x2a20", - "input": "0x6080604052348015600f57600080fd5b50604051602080608183398101806040526020811015602d57600080fd5b810190808051906020019092919050505050603580604c6000396000f3fe6080604052600080fdfea165627a7a72305820c577c5325e4c667e8439f998d616e74110a14fb5b185afe46d8443bbfd9c3d710029", - "output": "0x6080604052600080fdfea165627a7a72305820c577c5325e4c667e8439f998d616e74110a14fb5b185afe46d8443bbfd9c3d710029", - "to": "0xd3204138864ad97dbfe703cf7281f6b3397c6003", - "type": "CREATE2", - "value": "0x0" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0xac78", - "gasUsed": "0x12310", - "input": "0x9c4ae2d00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000000000816080604052348015600f57600080fd5b50604051602080608183398101806040526020811015602d57600080fd5b810190808051906020019092919050505050603580604c6000396000f3fe6080604052600080fdfea165627a7a72305820c577c5325e4c667e8439f998d616e74110a14fb5b185afe46d8443bbfd9c3d71002900000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "to": "0xe213d8b68ca3d01e51a6dba669de59ac9a8359ee", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_create_a.json b/node/cn/tracers/testdata/call_tracer_create_a.json deleted file mode 100644 index 38da8a006..000000000 --- a/node/cn/tracers/testdata/call_tracer_create_a.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with CREATE opcode from an internal transaction. The associated code is under testdata/contracts/Factory.", - "context": { - "blockscore": "0x1", - "number": "36867451", - "timestamp": "1598422880" - }, - "genesis": { - "alloc": { - "0x537e697c7ab75a26f9ecf0ce810e3154dfcaaf44": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80633f811b8014610030575b600080fd5b61005c6004803603602081101561004657600080fd5b810190808035906020019092919050505061005e565b005b8060405161006b90610096565b80828152602001915050604051809103906000f080158015610091573d6000803e3d6000fd5b505050565b6081806100a38339019056fe6080604052348015600f57600080fd5b50604051602080608183398101806040526020811015602d57600080fd5b810190808051906020019092919050505050603580604c6000396000f3fe6080604052600080fdfea165627a7a7230582023e6f924ecb36fdb6930ce08ac1ef8a0faf74224cfb255f0983c94e0d7e10e430029a165627a7a7230582092d33ffcdcaad4c73913317ea743392ee3c468c6f9ba94599332c447769dd1590029", - "nonce": "1", - "storage": {} - }, - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x453ea495b1040000", - "code": "0x", - "nonce": "3", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b8412fb4ea2e81a1ce6535d180dfe4a7f538e2e2b9e6a8a103ea570fbd81bb91ddcf38765f09f9044a5aaa60dc12b6f74712fa20967522978584df556e3b6b2a7eba00f8c9b841819cdca8fddbfb55260cafdd5a25686b4ac4b39d2e1d55da5ecb9c18a58271d72d7e04ca0281e7dd2f4ad4112abddacf8adeaf65e45d4ca20a150e765f4178c001b8419c1451b18c49044c3baeb8caac63fc896770aa664d778851fb4163957c943b2237562bf881283c75de5bb3b7812be04c5e9a87062805b8777528947d867e717200b8419e61b4e46968a4d284656bf3f1965a006eaff1aa529b5bf43bc0b2ba47694763054a22a99e5cc3f64472468ebfefe6c0376026475c90332ef4f30ce8057e78a701", - "hash": "0x8d6be1fd3a5277cda749c5c5dc2a2d2761de009c7c786e387e767dc117763cc2", - "number": "36867450", - "reward": "0x6559a7b6248b342bc11fbcdf9343212bbc347edc", - "stateRoot": "0x823be15062fb79d6af3ede2cfc4f854ed500e34aa00e27501aba881470060bf5", - "timestamp": "1598422879", - "timestampFoS": 1, - "totalBlockScore": "0x2328d7b", - "voteData": "0x" - }, - "input": "0xf88a038505d21dba0082fd7194537e697c7ab75a26f9ecf0ce810e3154dfcaaf4480a43f811b8012345600000000000000000000000000000000000000000000000000000000008207f6a078620ce2f6fbe160099aec1971e05f7b4fb7024474c96d0bef3b88808c187910a0404a4a7c8feef7553d6486eec031b16dc8e51d9ea2120c6ecabe2d7d181f257c", - "result": { - "calls": [ - { - "from": "0x537e697c7ab75a26f9ecf0ce810e3154dfcaaf44", - "gas": "0x2a20", - "gasUsed": "0x2a20", - "input": "0x6080604052348015600f57600080fd5b50604051602080608183398101806040526020811015602d57600080fd5b810190808051906020019092919050505050603580604c6000396000f3fe6080604052600080fdfea165627a7a7230582023e6f924ecb36fdb6930ce08ac1ef8a0faf74224cfb255f0983c94e0d7e10e4300291234560000000000000000000000000000000000000000000000000000000000", - "output": "0x6080604052600080fdfea165627a7a7230582023e6f924ecb36fdb6930ce08ac1ef8a0faf74224cfb255f0983c94e0d7e10e430029", - "to": "0x1065f6d1783aff1ae54764418f9e359c8f957d15", - "type": "CREATE", - "value": "0x0" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0xa919", - "gasUsed": "0xfcef", - "input": "0x3f811b801234560000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "to": "0x537e697c7ab75a26f9ecf0ce810e3154dfcaaf44", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_create_overflow.json b/node/cn/tracers/testdata/call_tracer_create_overflow.json deleted file mode 100644 index 4e561db2c..000000000 --- a/node/cn/tracers/testdata/call_tracer_create_overflow.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "context": { - "blockscore": "0x1", - "number": "15498", - "timestamp": "1659522374" - }, - "genesis": { - "alloc": { - "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d": { - "balance": "0x446c3b15f9926687d2c40534fdb5aa86811f132f00", - "code": "0x", - "nonce": "7", - "storage": {} - }, - "0x53a054cfb7c96f1f2af5be019584107dd2886471": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80634d536fe314602d575b600080fd5b60336035565b005b600067ffffffffffffffd06000f0507f9f9fb434574749b74458e0ddc3cf5fd5bdb1b009c8615e825606b53724576f3560405160405180910390a156fea264697066735822122040e7b4928753022122359c26fbe3cbe5bcbbb7b3e72671531ef02c9d439bb5d064736f6c63430008070033", - "nonce": "3", - "storage": {} - } - }, - "baseFeePerGas": "0x5d21dba00", - "blockscore": "0x1", - "config": { - "chainId": 1000, - "deriveShaImpl": 0, - "ethTxTypeCompatibleBlock": 0, - "governance": { - "governanceMode": "none", - "governingNode": "0x0000000000000000000000000000000000000000", - "kip71": { - "basefeedenominator": 20, - "gastarget": 30000000, - "lowerboundbasefee": 25000000000, - "maxblockgasusedforbasefee": 60000000, - "upperboundbasefee": 750000000000 - }, - "reward": { - "deferredTxFee": false, - "minimumStake": 2000000, - "mintingAmount": 0, - "proposerUpdateInterval": 3600, - "ratio": "100/0/0", - "stakingUpdateInterval": 86400, - "useGiniCoeff": false - } - }, - "istanbul": { - "epoch": 604800, - "policy": 0, - "sub": 21 - }, - "istanbulCompatibleBlock": 0, - "londonCompatibleBlock": 0, - "magmaCompatibleBlock": 0, - "unitPrice": 0 - }, - "extraData": "0xd683010900846b6c617986676f312e3138856c696e7578000000000000000000f89ed5944cefb5df9a128512c8c5cdfab717ff1dcd10dc7db841977684b7844971f528724c60163507171505ed84ad1abfb7bd5ac5be0aa92104438e5c2799ae3ae7962eb5879d0b6742fa5774430468ca833bd41ae43e1207ad01f843b84142d800489867909d625a4f5ba176abc65f9fc589702e34f7ffd50be74682052e193b9c9ad133c47d9477f912208d191ee5bc88f63e3136808b0dc223eb2dc07b01", - "hash": "0xee827f13794e0586070cf5d2756880288cc3fca137c229f96a03fd1c94c7790d", - "number": "15497", - "reward": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "stateRoot": "0xb04b7f23127eca5812fec01fbf8ee062346898ac7547b8ab9206e7f75db060c0", - "timestamp": "1659522373", - "timestampFoS": 3, - "totalBlockScore": "0x3c8a" - }, - "input": "0xf86b07850ba43b7400832dc6c09453a054cfb7c96f1f2af5be019584107dd288647180844d536fe38207f4a0e6c28655cb930727b7486aa0aa1f8c9072a230cd26e150dca5a35e0b917cf500a02fa29a93c38d59fb20ae401190d15ef326c00c389a7a2110856425550b12a7b6", - "result": { - "calls": [ - { - "from": "0x53a054cfb7c96f1f2af5be019584107dd2886471", - "gasUsed": "0x0", - "input": "0x", - "output": "0x", - "to": "0x43d9d4068bceec3a472befc8c27c46922114645e", - "type": "CREATE", - "value": "0x0" - } - ], - "from": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "gas": "0x2d7328", - "gasUsed": "0xd426", - "input": "0x4d536fe3", - "output": "0x", - "to": "0x53a054cfb7c96f1f2af5be019584107dd2886471", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_deep_calls.json b/node/cn/tracers/testdata/call_tracer_deep_calls.json deleted file mode 100644 index 324bfc8bc..000000000 --- a/node/cn/tracers/testdata/call_tracer_deep_calls.json +++ /dev/null @@ -1,415 +0,0 @@ -{ - "context": { - "difficulty": "117066904", - "gasLimit": "4712384", - "miner": "0x1977c248e1014cc103929dd7f154199c916e39ec", - "number": "25001", - "timestamp": "1479891545" - }, - "genesis": { - "alloc": { - "0x2a98c5f40bfa3dee83431103c535f6fae9a8ad38": { - "balance": "0x0", - "code": "0x606060405236156100825760e060020a600035046302d05d3f811461008a5780630accce061461009c5780631ab9075a146100c757806331ed274614610102578063645a3b7214610133578063772fdae314610155578063a7f4377914610180578063ae5f80801461019e578063c9bded21146101ea578063f905c15a14610231575b61023a610002565b61023c600054600160a060020a031681565b61023a600435602435604435606435608435600254600160a060020a03166000141561024657610002565b61023a600435600254600160a060020a03166000148015906100f8575060025433600160a060020a03908116911614155b156102f457610002565b61023a60043560243560443560643560843560a43560c435600254600160a060020a03166000141561031657610002565b61023a600435602435600254600160a060020a0316600014156103d057610002565b61023a600435602435604435606435608435600254600160a060020a03166000141561046157610002565b61023a60025433600160a060020a0390811691161461051657610002565b61023a6004356024356044356060828152600160a060020a0382169060ff8516907fa6c2f0913db6f79ff0a4365762c61718973b3413d6e40382e704782a9a5099f690602090a3505050565b61023a600435602435600160a060020a038116606090815260ff8316907fee6348a7ec70f74e3d6cba55a53e9f9110d180d7698e9117fc466ae29a43e34790602090a25050565b61023c60035481565b005b6060908152602090f35b60025460e060020a6313bc6d4b02606090815233600160a060020a0390811660645291909116906313bc6d4b906084906020906024816000876161da5a03f115610002575050604051511515905061029d57610002565b60408051858152602081018390528151600160a060020a03858116939087169260ff8a16927f5a690ecd0cb15c1c1fd6b6f8a32df0d4f56cb41a54fea7e94020f013595de796929181900390910190a45050505050565b6002805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b60025460e060020a6313bc6d4b02606090815233600160a060020a0390811660645291909116906313bc6d4b906084906020906024816000876161da5a03f115610002575050604051511515905061036d57610002565b6040805186815260208101869052808201859052606081018490529051600160a060020a03831691889160ff8b16917fd65d9ddafbad8824e2bbd6f56cc9f4ac27ba60737035c10a321ea2f681c94d47919081900360800190a450505050505050565b60025460e060020a6313bc6d4b02606090815233600160a060020a0390811660645291909116906313bc6d4b906084906020906024816000876161da5a03f115610002575050604051511515905061042757610002565b60408051828152905183917fa9c6cbc4bd352a6940479f6d802a1001550581858b310d7f68f7bea51218cda6919081900360200190a25050565b60025460e060020a6313bc6d4b02606090815233600160a060020a0390811660645291909116906313bc6d4b906084906020906024816000876161da5a03f11561000257505060405151151590506104b857610002565b80600160a060020a031684600160a060020a03168660ff167f69bdaf789251e1d3a0151259c0c715315496a7404bce9fd0b714674685c2cab78686604051808381526020018281526020019250505060405180910390a45050505050565b600254600160a060020a0316ff", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396" - } - }, - "0x2cccf5e0538493c235d1c5ef6580f77d99e91396": { - "balance": "0x0", - "code": "0x606060405236156100775760e060020a600035046302d05d3f811461007f57806313bc6d4b146100915780633688a877146100b95780635188f9961461012f5780637eadc976146101545780638ad79680146101d3578063a43e04d814610238578063a7f437791461025e578063e16c7d981461027c575b61029f610002565b6102a1600054600160a060020a031681565b6102be600435600160a060020a03811660009081526002602052604090205460ff165b919050565b6102d26004356040805160208181018352600080835284815260038252835190849020805460026001821615610100026000190190911604601f8101849004840283018401909552848252929390929183018282801561037d5780601f106103525761010080835404028352916020019161037d565b61029f6004356024356000805433600160a060020a039081169116146104a957610002565b61034060043560008181526001602090815260408083205481517ff905c15a0000000000000000000000000000000000000000000000000000000081529151600160a060020a03909116928392839263f905c15a92600483810193919291829003018189876161da5a03f1156100025750506040515195945050505050565b60408051602060248035600481810135601f810185900485028601850190965285855261029f9581359591946044949293909201918190840183828082843750949650505050505050600054600160a060020a0390811633909116146104f657610002565b61029f6004355b600080548190600160a060020a0390811633909116146105a457610002565b61029f60005433600160a060020a0390811691161461072957610002565b6102a1600435600081815260016020526040902054600160a060020a03166100b4565b005b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156103325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b820191906000526020600020905b81548152906001019060200180831161036057829003601f168201915b505050505090506100b4565b506000828152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff191686179055600160a060020a038581168086526002909352818520805460ff191690941790935580517f1ab9075a0000000000000000000000000000000000000000000000000000000081523090931660048401525184939192631ab9075a926024828101939192829003018183876161da5a03f11561000257505060408051602081018690528082019290925243606083015260808083526003908301527f414444000000000000000000000000000000000000000000000000000000000060a0830152517f8ac68d4e97d65912f220b4c5f87978b8186320a5e378c1369850b5b5f90323d39181900360c00190a15b505050565b600083815260016020526040902054600160a060020a03838116911614156104d0576104a4565b600083815260016020526040812054600160a060020a031614610389576103898361023f565b600082815260036020908152604082208054845182855293839020919360026001831615610100026000190190921691909104601f90810184900483019391929186019083901061056a57805160ff19168380011785555b5061059a9291505b808211156105a05760008155600101610556565b8280016001018555821561054e579182015b8281111561054e57825182600050559160200191906001019061057c565b50505050565b5090565b600083815260016020526040812054600160a060020a031614156105c757610002565b50506000818152600160205260408082205481517fa7f437790000000000000000000000000000000000000000000000000000000081529151600160a060020a0391909116928392839263a7f4377992600483810193919291829003018183876161da5a03f11561000257505050600160005060008460001916815260200190815260200160002060006101000a815490600160a060020a0302191690556002600050600083600160a060020a0316815260200190815260200160002060006101000a81549060ff02191690557f8ac68d4e97d65912f220b4c5f87978b8186320a5e378c1369850b5b5f90323d383834360405180806020018560001916815260200184600160a060020a03168152602001838152602001828103825260038152602001807f44454c000000000000000000000000000000000000000000000000000000000081526020015060200194505050505060405180910390a1505050565b600054600160a060020a0316ff", - "nonce": "1", - "storage": { - "0x0684ac65a9fa32414dda56996f4183597d695987fdb82b145d722743891a6fe8": "0x0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "0x1cd76f78169a420d99346e3501dd3e541622c38a226f9b63e01cfebc69879dc7": "0x000000000000000000000000b4fe7aa695b326c9d219158d2ca50db77b39f99f", - "0x8e54a4494fe5da016bfc01363f4f6cdc91013bb5434bd2a4a3359f13a23afa2f": "0x000000000000000000000000cf00ffd997ad14939736f026006498e3f099baaf", - "0x94edf7f600ba56655fd65fca1f1424334ce369326c1dc3e53151dcd1ad06bc13": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0xbbee47108b275f55f98482c6800f6372165e88b0330d3f5dae6419df4734366c": "0x0000000000000000000000002a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "0xd38c0c4e84de118cfdcc775130155d83b8bbaaf23dc7f3c83a626b10473213bd": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0xfb3aa5c655c2ec9d40609401f88d505d1da61afaa550e36ef5da0509ada257ba": "0x0000000000000000000000007986bad81f4cbd9317f5a46861437dae58d69113" - } - }, - "0x3e9286eafa2db8101246c2131c09b49080d00690": { - "balance": "0x0", - "code": "0x606060405236156100cf5760e060020a600035046302d05d3f81146100d7578063056d4470146100e957806316c66cc61461010c5780631ab9075a146101935780633ae1005c146101ce57806358541662146101fe5780635ed61af014610231578063644e3b791461025457806384dbac3b146102db578063949ae479146102fd5780639859387b14610321578063a7f4377914610340578063ab03fc261461035e578063e8161b7814610385578063e964d4e114610395578063f905c15a146103a5578063f92eb774146103ae575b6103be610002565b6103c0600054600160a060020a031681565b6103be6004356002546000908190600160a060020a031681141561040357610002565b6103dd60043560006108365b6040805160025460e360020a631c2d8fb30282527f636f6e747261637464620000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f1156100025750506040515191506104e29050565b6103be600435600254600160a060020a03166000148015906101c4575060025433600160a060020a03908116911614155b1561088d57610002565b6103be600435602435604435606435600254600090819081908190600160a060020a03168114156108af57610002565b6103c0600435602435604435606435608435600254600090819081908190600160a060020a03168114156110e857610002565b6103be6004356002546000908190600160a060020a03168114156115ec57610002565b6103c06004356000611b635b6040805160025460e360020a631c2d8fb30282527f6d61726b6574646200000000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f1156100025750506040515191506104e29050565b6103be600435602435600254600160a060020a031660001415611bb557610002565b6103be600435602435600254600090600160a060020a0316811415611d2e57610002565b6103be600435600254600160a060020a031660001415611fc657610002565b6103be60025433600160a060020a0390811691161461207e57610002565b6103be600435602435604435600254600090600160a060020a031681141561208c57610002565b6103dd60043560006124b8610260565b6103c0600435600061250a610118565b6103f160035481565b6103f16004356000612561610260565b005b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061046557610002565b8291506104e55b6040805160025460e360020a631c2d8fb30282527f63706f6f6c00000000000000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f115610002575050604051519150505b90565b600160a060020a031663b2206e6d83600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517fb2206e6d0000000000000000000000000000000000000000000000000000000082526004820152600160a060020a038816602482015290516044808301935060209282900301816000876161da5a03f11561000257505060405151915061059b90506106ba565b600160a060020a031663d5b205ce83600160a060020a03166336da44686040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e160020a636ad902e7028252600160a060020a0390811660048301526024820187905288166044820152905160648281019350600092829003018183876161da5a03f115610002575050506107355b6040805160025460e360020a631c2d8fb30282527f6c6f676d6772000000000000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f1156100025750506040515191506104e29050565b50826120ee5b6040805160025460e360020a631c2d8fb30282527f6163636f756e7463746c0000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f1156100025750506040515191506104e29050565b600160a060020a0316630accce06600684600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e360020a6306db488d02825291519192899290916336da446891600482810192602092919082900301816000876161da5a03f1156100025750505060405180519060200150866040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f11561000257505050505050565b600160a060020a03166316c66cc6836040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f115610002575050604051519150505b919050565b6002805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061091157610002565b87935061091c610260565b600160a060020a031663bdbdb08685600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517fbdbdb0860000000000000000000000000000000000000000000000000000000082526004820152602481018a905290516044808301935060209282900301816000876161da5a03f1156100025750506040515193506109ca90506106ba565b600160a060020a03166381982a7a8885876040518460e060020a0281526004018084600160a060020a0316815260200183815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f11561000257505050610a3661046c565b600160a060020a03166308636bdb85600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517f08636bdb000000000000000000000000000000000000000000000000000000008252600482015260248101889052604481019290925251606482810192602092919082900301816000876161da5a03f11561000257505060408051805160e160020a630a5d50db028252600482018190529151919450600160a060020a03871692506314baa1b6916024828101926000929190829003018183876161da5a03f11561000257505050610b3561046c565b600160a060020a0316630a3b6ede85600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e160020a63051db76f0282526004820152600160a060020a038d16602482015290516044808301935060209282900301816000876161da5a03f115610002575050604051519150610bd590506106ba565b600160a060020a031663d5b205ce87838b6040518460e060020a0281526004018084600160a060020a0316815260200183815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f11561000257505050610c41610118565b600160a060020a031663988db79c888a6040518360e060020a0281526004018083600160a060020a0316815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050610ca5610260565b600160a060020a031663f4f2821b896040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f11561000257505050610d6f5b6040805160025460e360020a631c2d8fb30282527f747261646564620000000000000000000000000000000000000000000000000060048301529151600092600160a060020a03169163e16c7d98916024828101926020929190829003018187876161da5a03f1156100025750506040515191506104e29050565b600160a060020a0316635f539d69896040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f11561000257505050610dc2610639565b600160a060020a0316630accce06600386600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e360020a6315b1ea01028252915191928e928e9263ad8f500891600482810192602092919082900301816000876161da5a03f11561000257505050604051805190602001506040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f11561000257505050610ec5610639565b600160a060020a0316630accce06600386600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e360020a6315b1ea01028252915191928e928d9263ad8f500891600482810192602092919082900301816000876161da5a03f11561000257505050604051805190602001506040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f11561000257505050610fc8610639565b600160a060020a031663645a3b7285600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151905061101e610260565b600160a060020a031663f92eb77488600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e260020a633e4baddd028252600482015290516024828101935060209282900301816000876161da5a03f11561000257505060408051805160e060020a86028252600482019490945260248101939093525160448381019360009350829003018183876161da5a03f115610002575050505050505050505050565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061114a57610002565b604051600254600160a060020a0316908a908a908a908a908a90611579806125b38339018087600160a060020a0316815260200186600160a060020a03168152602001856000191681526020018481526020018381526020018281526020019650505050505050604051809103906000f092506111c5610118565b600160a060020a031663b9858a288a856040518360e060020a0281526004018083600160a060020a0316815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050611229610260565b600160a060020a0316635188f99689856040518360e060020a028152600401808360001916815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050611288610260565b600160a060020a031663bdbdb08689896040518360e060020a0281526004018083600019168152602001828152602001925050506020604051808303816000876161da5a03f1156100025750506040515192506112e590506106ba565b600160a060020a03166346d88e7d8a858a6040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a0316815260200182815260200193505050506000604051808303816000876161da5a03f115610002575050506113516106ba565b600160a060020a03166381982a7a8a84866040518460e060020a0281526004018084600160a060020a0316815260200183815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f115610002575050506113bd61046c565b600160a060020a0316632b58469689856040518360e060020a028152600401808360001916815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f1156100025750505061141c61046c565b600160a060020a03166308636bdb8984866040518460e060020a028152600401808460001916815260200183815260200182600160a060020a0316815260200193505050506020604051808303816000876161da5a03f11561000257505060408051805160e160020a630a5d50db028252600482018190529151919350600160a060020a03861692506314baa1b6916024828101926000929190829003018183876161da5a03f115610002575050506114d3610639565b6040805160e160020a630566670302815260016004820152602481018b9052600160a060020a0386811660448301528c811660648301526000608483018190529251931692630accce069260a480840193919291829003018183876161da5a03f11561000257505050611544610639565b600160a060020a031663645a3b728961155b610260565b600160a060020a031663f92eb7748c6040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f11561000257505060408051805160e060020a86028252600482019490945260248101939093525160448084019360009350829003018183876161da5a03f1156100025750939a9950505050505050505050565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061164e57610002565b82915061165961046c565b600160a060020a0316630a3b6ede83600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e160020a63051db76f0282526004820152600160a060020a038816602482015290516044808301935060209282900301816000876161da5a03f1156100025750506040515191506116f990506106ba565b600160a060020a031663d5b205ce83600160a060020a03166336da44686040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e160020a636ad902e7028252600160a060020a0390811660048301526024820187905288166044820152905160648281019350600092829003018183876161da5a03f1156100025750505061179b6106ba565b600160a060020a031663d653078983600160a060020a03166336da44686040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517ff1ff78a0000000000000000000000000000000000000000000000000000000008252915191929163f1ff78a09160048181019260209290919082900301816000876161da5a03f1156100025750505060405180519060200150866040518460e060020a0281526004018084600160a060020a0316815260200183815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f1156100025750505061189f610260565b600160a060020a031663f4f2821b846040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f115610002575050506118f2610118565b600160a060020a031663f4f2821b846040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f11561000257505050611945610639565b600160a060020a0316630accce06600484600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e360020a6306db488d02825291519192899290916336da44689181870191602091908190038801816000876161da5a03f115610002575050506040518051906020015060006040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f11561000257505050611a48610639565b600160a060020a031663645a3b7283600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519050611a9e610260565b600160a060020a031663f92eb77486600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e260020a633e4baddd028252600482015290516024828101935060209282900301816000876161da5a03f11561000257505060408051805160e060020a86028252600482019490945260248101939093525160448381019360009350829003018183876161da5a03f11561000257505050505050565b600160a060020a03166381738c59836040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f1156100025750506040515191506108889050565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f1156100025750506040515115159050611c1757610002565b611c1f610260565b600160a060020a03166338a699a4836040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f11561000257505060405151159050611c7457610002565b611c7c610260565b600160a060020a0316632243118a836040518260e060020a02815260040180826000191681526020019150506000604051808303816000876161da5a03f11561000257505050611cca610639565b600160a060020a031663ae5f8080600184846040518460e060020a028152600401808481526020018360001916815260200182600160a060020a0316815260200193505050506000604051808303816000876161da5a03f115610002575050505050565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f1156100025750506040515115159050611d9057610002565b5081611d9a610260565b600160a060020a031663581d5d6084846040518360e060020a0281526004018083600160a060020a03168152602001828152602001925050506000604051808303816000876161da5a03f11561000257505050611df5610639565b600160a060020a0316630accce06600283600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e160020a630566670302825260048201949094526024810193909352600160a060020a038816604484015260006064840181905260848401819052905160a4808501949293509091829003018183876161da5a03f11561000257505050611eab610639565b600160a060020a031663645a3b7282600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519050611f01610260565b600160a060020a031663f92eb77485600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e260020a633e4baddd028252600482015290516024828101935060209282900301816000876161da5a03f11561000257505060408051805160e060020a86028252600482019490945260248101939093525160448381019360009350829003018183876161da5a03f11561000257505050505050565b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061202857610002565b612030610118565b600160a060020a0316639859387b826040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f1156100025750505050565b600254600160a060020a0316ff5b6040805160025460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f11561000257505060405151151590506106b457610002565b600160a060020a031663d65307898383600160a060020a031663f1ff78a06040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517fd6530789000000000000000000000000000000000000000000000000000000008252600160a060020a039485166004830152602482015292891660448401525160648381019360009350829003018183876161da5a03f115610002575050506121a5610118565b600160a060020a031663f4f2821b856040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f115610002575050506121f8610cf4565b600160a060020a031663f4f2821b856040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f1156100025750505061224b610639565b600160a060020a0316630accce06600583600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e360020a6306db488d028252915191928a9290916336da446891600482810192602092919082900301816000876161da5a03f1156100025750505060405180519060200150886040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f1156100025750505080600160a060020a031663ea71b02d6040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151600160a060020a031660001490506124b25761239f610639565b600160a060020a0316630accce06600583600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040805180517fea71b02d000000000000000000000000000000000000000000000000000000008252915191928a92909163ea71b02d91600482810192602092919082900301816000876161da5a03f1156100025750505060405180519060200150886040518660e060020a028152600401808681526020018560001916815260200184600160a060020a0316815260200183600160a060020a03168152602001828152602001955050505050506000604051808303816000876161da5a03f115610002575050505b50505050565b600160a060020a03166338a699a4836040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f1156100025750506040515191506108889050565b600160a060020a031663213fe2b7836040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515191506108889050565b600160a060020a031663f92eb774836040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f115610002575050604051519150610888905056606060405260405160c08061157983396101206040819052825160805160a051935160e0516101005160008054600160a060020a03199081163317909155600180546005805484168817905560048a90556006869055600b8590556008849055909116861760a060020a60ff02191690554360038190556002558686526101408390526101608190529396929594919390929091600160a060020a033016917f76885d242fb71c6f74a7e717416e42eff4d96faf54f6de75c6a0a6bbd8890c6b91a230600160a060020a03167fa609f6bd4ad0b4f419ddad4ac9f0d02c2b9295c5e6891469055cf73c2b568fff600b600050546040518082815260200191505060405180910390a250505050505061145e8061011b6000396000f3606060405236156101745760e060020a600035046302d05d3f811461017c57806304a7fdbc1461018e5780630e90f957146101fb5780630fb5a6b41461021257806314baa1b61461021b57806317fc45e21461023a5780632b096926146102435780632e94420f1461025b578063325a19f11461026457806336da44681461026d5780633f81a2c01461027f5780633fc306821461029757806345ecd3d7146102d45780634665096d146102dd5780634e71d92d146102e657806351a34eb8146103085780636111bb951461032d5780636f265b93146103445780637e9014e11461034d57806390ba009114610360578063927df5e014610393578063a7f437791461046c578063ad8f50081461046e578063bc6d909414610477578063bdec3ad114610557578063c19d93fb1461059a578063c9503fe2146105ad578063e0a73a93146105b6578063ea71b02d146105bf578063ea8a1af0146105d1578063ee4a96f9146105f3578063f1ff78a01461065c575b61046c610002565b610665600054600160a060020a031681565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600554600090600160a060020a0390811633909116146106a857610002565b61068260015460a060020a900460ff166000145b90565b61069660085481565b61046c600435600154600160a060020a03166000141561072157610002565b610696600d5481565b610696600435600f8160068110156100025750015481565b61069660045481565b61069660035481565b610665600554600160a060020a031681565b61069660043560158160068110156100025750015481565b6106966004355b600b54600f5460009160028202808203928083039290810191018386101561078357601054840186900394505b50505050919050565b61069660025481565b61069660095481565b61046c600554600090600160a060020a03908116339091161461085857610002565b61046c600435600554600090600160a060020a03908116339091161461092e57610002565b6106826001805460a060020a900460ff161461020f565b610696600b5481565b61068260075460a060020a900460ff1681565b6106966004355b600b54601554600091600282028082039280830392908101910183861015610a6c5760165494506102cb565b61046c6004356024356044356040805160015460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b02600483015291516000928392600160a060020a03919091169163e16c7d9891602481810192602092909190829003018187876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610b4657610002565b005b610696600a5481565b61046c60006000600060006000600160009054906101000a9004600160a060020a0316600160a060020a031663e16c7d986040518160e060020a028152600401808060b260020a691858d8dbdd5b9d18dd1b0281526020015060200190506020604051808303816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610f1757610002565b61046c5b60015b60058160ff16101561071e57600f6001820160ff166006811015610002578101549060ff83166006811015610002570154101561129057610002565b61069660015460a060020a900460ff1681565b61069660065481565b610696600c5481565b610665600754600160a060020a031681565b61046c600554600090600160a060020a0390811633909116146112c857610002565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600154600090600160a060020a03168114156113fb57610002565b610696600e5481565b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b5060005b60068160ff16101561070857828160ff166006811015610002576020020151600f60ff831660068110156100025701558160ff82166006811015610002576020020151601560ff831660068110156100025701556001016106ac565b61071061055b565b505050565b600e8054820190555b50565b6040805160015460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061071557610002565b83861015801561079257508286105b156107b457600f546010546011548689039082030291909104900394506102cb565b8286101580156107c55750600b5486105b156107e757600f546011546012548589039082030291909104900394506102cb565b600b5486108015906107f857508186105b1561081d57600b54600f546012546013549289039281039290920204900394506102cb565b81861015801561082c57508086105b1561084e57600f546013546014548489039082030291909104900394506102cb565b60145494506102cb565b60015460a060020a900460ff1660001461087157610002565b600254600a01431161088257610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663771d50e16040518160e060020a0281526004018090506000604051808303816000876161da5a03f1156100025750505050565b60015460a060020a900460ff1660001461094757610002565b600254600a01431161095857610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180517f51a34eb8000000000000000000000000000000000000000000000000000000008252600482018690529151919350600160a060020a03841692506351a34eb8916024808301926000929190829003018183876161da5a03f11561000257505050600b8290554360025560408051838152905130600160a060020a0316917fa609f6bd4ad0b4f419ddad4ac9f0d02c2b9295c5e6891469055cf73c2b568fff919081900360200190a25050565b838610158015610a7b57508286105b15610a9d576015546016546017548689039082900302919091040194506102cb565b828610158015610aae5750600b5486105b15610ad0576015546017546018548589039082900302919091040194506102cb565b600b548610801590610ae157508186105b15610b0657600b546015546018546019549289039281900392909202040194506102cb565b818610158015610b1557508086105b15610b3757601554601954601a548489039082900302919091040194506102cb565b601a54860181900394506102cb565b60015460a060020a900460ff16600014610b5f57610002565b6001805460a060020a60ff02191660a060020a17908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919450600160a060020a038516925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604080518051600a556005547ffebf661200000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015216602482015260448101879052905163febf661291606480820192600092909190829003018183876161da5a03f115610002575050508215610cc7576007805473ffffffffffffffffffffffffffffffffffffffff191633179055610dbb565b6040805160055460065460e060020a63599efa6b028352600160a060020a039182166004840152602483015291519184169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050604080516006547f56ccb6f000000000000000000000000000000000000000000000000000000000825233600160a060020a03166004830152602482015290516356ccb6f091604480820192600092909190829003018183876161da5a03f115610002575050600580546007805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a038416179091551633179055505b6007805460a060020a60ff02191660a060020a87810291909117918290556008544301600955900460ff1615610df757600a54610e039061029e565b600a54610e0b90610367565b600c55610e0f565b600c555b600c54670de0b6b3a7640000850204600d55600754600554604080517f759297bb000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152918316602483015260448201879052519184169163759297bb91606481810192600092909190829003018183876161da5a03f11561000257505060408051600754600a54600d54600554600c5460a060020a850460ff161515865260208601929092528486019290925260608401529251600160a060020a0391821694509281169230909116917f3b3d1986083d191be01d28623dc19604728e29ae28bdb9ba52757fdee1a18de2919081900360800190a45050505050565b600954431015610f2657610002565b6001805460a060020a900460ff1614610f3e57610002565b6001805460a060020a60ff0219167402000000000000000000000000000000000000000017908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919750600160a060020a038816925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604051516007549095506000945060a060020a900460ff1615905061105c57600a5484111561105757600a54600d54670de0b6b3a7640000918603020492505b61107e565b600a5484101561107e57600a54600d54670de0b6b3a764000091869003020492505b60065483111561108e5760065492505b6006548390039150600083111561111857604080516005546007547f5928d37f000000000000000000000000000000000000000000000000000000008352600160a060020a0391821660048401528116602483015260448201869052915191871691635928d37f91606481810192600092909190829003018183876161da5a03f115610002575050505b600082111561117a576040805160055460e060020a63599efa6b028252600160a060020a0390811660048301526024820185905291519187169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050505b6040805185815260208101849052808201859052905130600160a060020a0316917f89e690b1d5aaae14f3e85f108dc92d9ab3763a58d45aed8b59daedbbae8fe794919081900360600190a260008311156112285784600160a060020a0316634cc927d785336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050611282565b84600160a060020a0316634cc927d7600a60005054336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f115610002575050505b600054600160a060020a0316ff5b60156001820160ff166006811015610002578101549060ff8316600681101561000257015411156112c057610002565b60010161055e565b60015460a060020a900460ff166000146112e157610002565b600254600a0143116112f257610002565b6001546040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f11561000257505060408051805160055460065460e060020a63599efa6b028452600160a060020a03918216600485015260248401529251909450918416925063599efa6b916044808301926000929190829003018183876161da5a03f1156100025750505080600160a060020a0316632b68bb2d6040518160e060020a0281526004018090506000604051808303816000876161da5a03f115610002575050600054600160a060020a03169050ff5b6001546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602480830192602092919082900301816000876161da5a03f11561000257505060405151151590506106a85761000256", - "nonce": "16", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396" - } - }, - "0x70c9217d814985faef62b124420f8dfbddd96433": { - "balance": "0x4ef436dcbda6cd4a", - "code": "0x", - "nonce": "1634", - "storage": {} - }, - "0x7986bad81f4cbd9317f5a46861437dae58d69113": { - "balance": "0x0", - "code": "0x6060604052361561008d5760e060020a600035046302d05d3f811461009557806316c66cc6146100a75780631ab9075a146100d7578063213fe2b7146101125780639859387b1461013f578063988db79c1461015e578063a7f4377914610180578063b9858a281461019e578063c8e40fbf146101c0578063f4f2821b146101e8578063f905c15a14610209575b610212610002565b610214600054600160a060020a031681565b600160a060020a0360043581811660009081526005602052604081205461023193168114610257575060016101e3565b610212600435600254600160a060020a0316600014801590610108575060025433600160a060020a03908116911614155b1561025f57610002565b610214600435600160a060020a03811660009081526004602052604081205460ff16151561027557610002565b610212600435600254600160a060020a03166000141561029b57610002565b610212600435602435600254600160a060020a03166000141561050457610002565b61021260025433600160a060020a0390811691161461056757610002565b610212600435602435600254600160a060020a03166000141561057557610002565b610231600435600160a060020a03811660009081526004602052604090205460ff165b919050565b610212600435600254600090600160a060020a031681141561072057610002565b61024560035481565b005b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b5060006101e3565b60028054600160a060020a031916821790555b50565b50600160a060020a038181166000908152600460205260409020546101009004166101e3565b6002546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602482810192602092919082900301816000876161da5a03f11561000257505060405151151590506102fe57610002565b600160a060020a03811660009081526004602052604090205460ff161515610272576040516104028061092e833901809050604051809103906000f06004600050600083600160a060020a0316815260200190815260200160002060005060000160016101000a815481600160a060020a030219169083021790555060016004600050600083600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff0219169083021790555050565b600160a060020a03821660009081526004602052604090205460ff1615156104725760405161040280610d30833901809050604051809103906000f06004600050600084600160a060020a0316815260200190815260200160002060005060000160016101000a815481600160a060020a030219169083021790555060016004600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff021916908302179055505b600160a060020a03828116600090815260046020819052604080518184205460e060020a630a3b0a4f02825286861693820193909352905161010090920490931692630a3b0a4f926024828101939192829003018183876161da5a03f11561000257505050600160a060020a03811660009081526006602052604090208054600160a060020a031916831790555b5050565b6002546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602482810192602092919082900301816000876161da5a03f11561000257505060405151151590506103b957610002565b600254600160a060020a0316ff5b6002546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602482810192602092919082900301816000876161da5a03f11561000257505060405151151590506105d857610002565b600160a060020a03821660009081526004602052604090205460ff1615156106915760405161040280611132833901809050604051809103906000f06004600050600084600160a060020a0316815260200190815260200160002060005060000160016101000a815481600160a060020a030219169083021790555060016004600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff021916908302179055505b600160a060020a03828116600090815260046020819052604080518184205460e060020a630a3b0a4f02825286861693820193909352905161010090920490931692630a3b0a4f926024828101939192829003018183876161da5a03f11561000257505050600160a060020a031660009081526005602052604090208054600160a060020a0319169091179055565b6002546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602482810192602092919082900301816000876161da5a03f115610002575050604051511515905061078357610002565b50600160a060020a0381811660009081526005602090815260408083205490931680835260049091529190205460ff161561080f576040600081812054825160e260020a632e72bafd028152600160a060020a03868116600483015293516101009092049093169263b9caebf4926024828101939192829003018183876161da5a03f115610002575050505b600160a060020a03828116600090815260056020526040812054909116146108545760406000908120600160a060020a0384169091528054600160a060020a03191690555b50600160a060020a0381811660009081526006602090815260408083205490931680835260049091529190205460ff16156108e657600160a060020a038181166000908152604080518183205460e260020a632e72bafd028252868516600483015291516101009092049093169263b9caebf4926024828101939192829003018183876161da5a03f115610002575050505b600160a060020a03828116600090815260066020526040812054909116146105005760406000908120600160a060020a0384169091528054600160a060020a0319169055505056606060405260008054600160a060020a031916331790556103de806100246000396000f3606060405236156100615760e060020a600035046302d05d3f81146100695780630a3b0a4f1461007b5780630d327fa7146100f6578063524d81d314610109578063a7f4377914610114578063b9caebf414610132578063bbec3bae14610296575b6102ce610002565b6102d0600054600160a060020a031681565b6102ce600435600254600090600160a060020a03168114156102ed5760028054600160a060020a03199081168417808355600160a060020a03808616855260036020526040852060018101805493831694909316939093179091559154815461010060a860020a031916921661010002919091179055610372565b6102d0600254600160a060020a03165b90565b6102e3600154610106565b6102ce60005433600160a060020a039081169116146103c657610002565b6102ce600435600160a060020a038116600090815260036020526040812054819060ff16801561016457506001548190115b1561029157506040808220600180820154915461010090819004600160a060020a039081168087528587209093018054600160a060020a031916948216948517905583865293909420805461010060a860020a03191694820294909417909355600254909190811690841614156101e85760028054600160a060020a031916821790555b600254600160a060020a0390811690841614156102105760028054600160a060020a03191690555b6003600050600084600160a060020a0316815260200190815260200160002060006000820160006101000a81549060ff02191690556000820160016101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a03021916905550506001600081815054809291906001900391905055505b505050565b600160a060020a036004358181166000908152600360205260408120600101546002546102d09491821691168114156103d4576103d8565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60028054600160a060020a03908116835260036020526040808420805461010060a860020a0319808216610100808a029190911790935590829004841680875283872060019081018054600160a060020a03199081168b179091559654868a168952949097209687018054949095169390951692909217909255835416908202179091555b60016003600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff0219169083021790555060016000818150548092919060010191905055505050565b600054600160a060020a0316ff5b8091505b5091905056606060405260008054600160a060020a031916331790556103de806100246000396000f3606060405236156100615760e060020a600035046302d05d3f81146100695780630a3b0a4f1461007b5780630d327fa7146100f6578063524d81d314610109578063a7f4377914610114578063b9caebf414610132578063bbec3bae14610296575b6102ce610002565b6102d0600054600160a060020a031681565b6102ce600435600254600090600160a060020a03168114156102ed5760028054600160a060020a03199081168417808355600160a060020a03808616855260036020526040852060018101805493831694909316939093179091559154815461010060a860020a031916921661010002919091179055610372565b6102d0600254600160a060020a03165b90565b6102e3600154610106565b6102ce60005433600160a060020a039081169116146103c657610002565b6102ce600435600160a060020a038116600090815260036020526040812054819060ff16801561016457506001548190115b1561029157506040808220600180820154915461010090819004600160a060020a039081168087528587209093018054600160a060020a031916948216948517905583865293909420805461010060a860020a03191694820294909417909355600254909190811690841614156101e85760028054600160a060020a031916821790555b600254600160a060020a0390811690841614156102105760028054600160a060020a03191690555b6003600050600084600160a060020a0316815260200190815260200160002060006000820160006101000a81549060ff02191690556000820160016101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a03021916905550506001600081815054809291906001900391905055505b505050565b600160a060020a036004358181166000908152600360205260408120600101546002546102d09491821691168114156103d4576103d8565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60028054600160a060020a03908116835260036020526040808420805461010060a860020a0319808216610100808a029190911790935590829004841680875283872060019081018054600160a060020a03199081168b179091559654868a168952949097209687018054949095169390951692909217909255835416908202179091555b60016003600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff0219169083021790555060016000818150548092919060010191905055505050565b600054600160a060020a0316ff5b8091505b5091905056606060405260008054600160a060020a031916331790556103de806100246000396000f3606060405236156100615760e060020a600035046302d05d3f81146100695780630a3b0a4f1461007b5780630d327fa7146100f6578063524d81d314610109578063a7f4377914610114578063b9caebf414610132578063bbec3bae14610296575b6102ce610002565b6102d0600054600160a060020a031681565b6102ce600435600254600090600160a060020a03168114156102ed5760028054600160a060020a03199081168417808355600160a060020a03808616855260036020526040852060018101805493831694909316939093179091559154815461010060a860020a031916921661010002919091179055610372565b6102d0600254600160a060020a03165b90565b6102e3600154610106565b6102ce60005433600160a060020a039081169116146103c657610002565b6102ce600435600160a060020a038116600090815260036020526040812054819060ff16801561016457506001548190115b1561029157506040808220600180820154915461010090819004600160a060020a039081168087528587209093018054600160a060020a031916948216948517905583865293909420805461010060a860020a03191694820294909417909355600254909190811690841614156101e85760028054600160a060020a031916821790555b600254600160a060020a0390811690841614156102105760028054600160a060020a03191690555b6003600050600084600160a060020a0316815260200190815260200160002060006000820160006101000a81549060ff02191690556000820160016101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a03021916905550506001600081815054809291906001900391905055505b505050565b600160a060020a036004358181166000908152600360205260408120600101546002546102d09491821691168114156103d4576103d8565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60028054600160a060020a03908116835260036020526040808420805461010060a860020a0319808216610100808a029190911790935590829004841680875283872060019081018054600160a060020a03199081168b179091559654868a168952949097209687018054949095169390951692909217909255835416908202179091555b60016003600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff0219169083021790555060016000818150548092919060010191905055505050565b600054600160a060020a0316ff5b8091505b5091905056", - "nonce": "7", - "storage": { - "0xffc4df2d4f3d2cffad590bed6296406ab7926ca9e74784f74a95191fa069a174": "0x00000000000000000000000070c9217d814985faef62b124420f8dfbddd96433" - } - }, - "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f": { - "balance": "0x0", - "code": "0x606060405236156100ae5760e060020a600035046302d05d3f81146100b65780631ab9075a146100c85780632b68bb2d146101035780634cc927d7146101c557806351a34eb81461028e57806356ccb6f0146103545780635928d37f1461041d578063599efa6b146104e9578063759297bb146105b2578063771d50e11461067e578063a7f4377914610740578063f905c15a1461075e578063f92eb77414610767578063febf661214610836575b610902610002565b610904600054600160a060020a031681565b610902600435600254600160a060020a03166000148015906100f9575060025433600160a060020a03908116911614155b1561092057610002565b60025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b02606452610902916000918291600160a060020a03169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f115610002575050604051511515905061094257610002565b61090260043560243560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610a0d57610002565b61090260043560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610ae957610002565b61090260043560243560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610bbc57610002565b61090260043560243560443560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610c9657610002565b61090260043560243560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610de057610002565b61090260043560243560443560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610ebb57610002565b60025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b02606452610902916000918291600160a060020a03169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610f9e57610002565b61090260025433600160a060020a0390811691161461106957610002565b61090e60035481565b61090e60043560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750506040805180517ff92eb774000000000000000000000000000000000000000000000000000000008252600482018790529151919350600160a060020a038416925063f92eb774916024828101926020929190829003018188876161da5a03f11561000257505060405151949350505050565b61090260043560243560443560025460e360020a631c2d8fb302606090815260aa60020a6a18dbdb9d1c9858dd18dd1b026064526000918291600160a060020a039091169063e16c7d989060849060209060248187876161da5a03f1156100025750505060405180519060200150905080600160a060020a03166316c66cc6336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f115610002575050604051511515905061107757610002565b005b6060908152602090f35b60408051918252519081900360200190f35b6002805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b6040805160025460e360020a631c2d8fb302825260aa60020a6a18dbdb9d1c9858dd18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f5ed61af000000000000000000000000000000000000000000000000000000000825233600160a060020a039081166004840152925190959286169350635ed61af092602483810193919291829003018183876161da5a03f115610002575050505050565b6040805160025460e360020a631c2d8fb302825260aa60020a6a18dbdb9d1c9858dd18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517fab03fc2600000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015260248301899052808816604484015292519095928616935063ab03fc2692606483810193919291829003018183876161da5a03f1156100025750505050505050565b6040805160025460e360020a631c2d8fb302825260aa60020a6a18dbdb9d1c9858dd18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f949ae47900000000000000000000000000000000000000000000000000000000825233600160a060020a0390811660048401526024830188905292519095928616935063949ae47992604483810193919291829003018183876161da5a03f11561000257505050505050565b6040805160025460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f46d88e7d000000000000000000000000000000000000000000000000000000008252600160a060020a0380891660048401523381166024840152604483018890529251909592861693506346d88e7d92606483810193919291829003018183876161da5a03f1156100025750505050505050565b6040805160025460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f5315cdde00000000000000000000000000000000000000000000000000000000825233600160a060020a039081166004840152808a16602484015260448301889052925190959286169350635315cdde92606483810193919291829003018183876161da5a03f115610002575050604080517f5928d37f00000000000000000000000000000000000000000000000000000000815233600160a060020a03908116600483015287166024820152604481018690529051635928d37f91606481810192600092909190829003018183876161da5a03f115610002575050505050505050565b6040805160025460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517fe68e401c00000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015280891660248401526044830188905292519095928616935063e68e401c92606483810193919291829003018183876161da5a03f1156100025750505050505050565b6040805160025460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f5152f381000000000000000000000000000000000000000000000000000000008252600160a060020a03808a1660048401528089166024840152604483018890523381166064840152925190959286169350635152f38192608483810193919291829003018183876161da5a03f115610002575050505050505050565b6040805160025460e360020a631c2d8fb302825260aa60020a6a18dbdb9d1c9858dd18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f056d447000000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015292519095928616935063056d447092602483810193919291829003018183876161da5a03f115610002575050505050565b600254600160a060020a0316ff5b6040805160025460e360020a631c2d8fb302825260aa60020a6a18dbdb9d1c9858dd18dd1b0260048301529151600160a060020a03929092169163e16c7d9891602481810192602092909190829003018188876161da5a03f1156100025750506040805180517f3ae1005c00000000000000000000000000000000000000000000000000000000825233600160a060020a039081166004840152808a166024840152808916604484015260648301889052925190959286169350633ae1005c92608483810193919291829003018183876161da5a03f11561000257505050505050505056", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396" - } - }, - "0xc212e03b9e060e36facad5fd8f4435412ca22e6b": { - "balance": "0x0", - "code": "0x606060405236156101745760e060020a600035046302d05d3f811461017c57806304a7fdbc1461018e5780630e90f957146101fb5780630fb5a6b41461021257806314baa1b61461021b57806317fc45e21461023a5780632b096926146102435780632e94420f1461025b578063325a19f11461026457806336da44681461026d5780633f81a2c01461027f5780633fc306821461029757806345ecd3d7146102d45780634665096d146102dd5780634e71d92d146102e657806351a34eb8146103085780636111bb951461032d5780636f265b93146103445780637e9014e11461034d57806390ba009114610360578063927df5e014610393578063a7f437791461046c578063ad8f50081461046e578063bc6d909414610477578063bdec3ad114610557578063c19d93fb1461059a578063c9503fe2146105ad578063e0a73a93146105b6578063ea71b02d146105bf578063ea8a1af0146105d1578063ee4a96f9146105f3578063f1ff78a01461065c575b61046c610002565b610665600054600160a060020a031681565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600554600090600160a060020a0390811633909116146106a857610002565b61068260015460a060020a900460ff166000145b90565b61069660085481565b61046c600435600154600160a060020a03166000141561072157610002565b610696600d5481565b610696600435600f8160068110156100025750015481565b61069660045481565b61069660035481565b610665600554600160a060020a031681565b61069660043560158160068110156100025750015481565b6106966004355b600b54600f5460009160028202808203928083039290810191018386101561078357601054840186900394505b50505050919050565b61069660025481565b61069660095481565b61046c600554600090600160a060020a03908116339091161461085857610002565b61046c600435600554600090600160a060020a03908116339091161461092e57610002565b6106826001805460a060020a900460ff161461020f565b610696600b5481565b61068260075460a060020a900460ff1681565b6106966004355b600b54601554600091600282028082039280830392908101910183861015610a6c5760165494506102cb565b61046c6004356024356044356040805160015460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b02600483015291516000928392600160a060020a03919091169163e16c7d9891602481810192602092909190829003018187876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610b4657610002565b005b610696600a5481565b61046c60006000600060006000600160009054906101000a9004600160a060020a0316600160a060020a031663e16c7d986040518160e060020a028152600401808060b260020a691858d8dbdd5b9d18dd1b0281526020015060200190506020604051808303816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610f1757610002565b61046c5b60015b60058160ff16101561071e57600f6001820160ff166006811015610002578101549060ff83166006811015610002570154101561129057610002565b61069660015460a060020a900460ff1681565b61069660065481565b610696600c5481565b610665600754600160a060020a031681565b61046c600554600090600160a060020a0390811633909116146112c857610002565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600154600090600160a060020a03168114156113fb57610002565b610696600e5481565b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b5060005b60068160ff16101561070857828160ff166006811015610002576020020151600f60ff831660068110156100025701558160ff82166006811015610002576020020151601560ff831660068110156100025701556001016106ac565b61071061055b565b505050565b600e8054820190555b50565b6040805160015460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061071557610002565b83861015801561079257508286105b156107b457600f546010546011548689039082030291909104900394506102cb565b8286101580156107c55750600b5486105b156107e757600f546011546012548589039082030291909104900394506102cb565b600b5486108015906107f857508186105b1561081d57600b54600f546012546013549289039281039290920204900394506102cb565b81861015801561082c57508086105b1561084e57600f546013546014548489039082030291909104900394506102cb565b60145494506102cb565b60015460a060020a900460ff1660001461087157610002565b600254600a01431161088257610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663771d50e16040518160e060020a0281526004018090506000604051808303816000876161da5a03f1156100025750505050565b60015460a060020a900460ff1660001461094757610002565b600254600a01431161095857610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180517f51a34eb8000000000000000000000000000000000000000000000000000000008252600482018690529151919350600160a060020a03841692506351a34eb8916024808301926000929190829003018183876161da5a03f11561000257505050600b8290554360025560408051838152905130600160a060020a0316917fa609f6bd4ad0b4f419ddad4ac9f0d02c2b9295c5e6891469055cf73c2b568fff919081900360200190a25050565b838610158015610a7b57508286105b15610a9d576015546016546017548689039082900302919091040194506102cb565b828610158015610aae5750600b5486105b15610ad0576015546017546018548589039082900302919091040194506102cb565b600b548610801590610ae157508186105b15610b0657600b546015546018546019549289039281900392909202040194506102cb565b818610158015610b1557508086105b15610b3757601554601954601a548489039082900302919091040194506102cb565b601a54860181900394506102cb565b60015460a060020a900460ff16600014610b5f57610002565b6001805460a060020a60ff02191660a060020a17908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919450600160a060020a038516925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604080518051600a556005547ffebf661200000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015216602482015260448101879052905163febf661291606480820192600092909190829003018183876161da5a03f115610002575050508215610cc7576007805473ffffffffffffffffffffffffffffffffffffffff191633179055610dbb565b6040805160055460065460e060020a63599efa6b028352600160a060020a039182166004840152602483015291519184169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050604080516006547f56ccb6f000000000000000000000000000000000000000000000000000000000825233600160a060020a03166004830152602482015290516356ccb6f091604480820192600092909190829003018183876161da5a03f115610002575050600580546007805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a038416179091551633179055505b6007805460a060020a60ff02191660a060020a87810291909117918290556008544301600955900460ff1615610df757600a54610e039061029e565b600a54610e0b90610367565b600c55610e0f565b600c555b600c54670de0b6b3a7640000850204600d55600754600554604080517f759297bb000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152918316602483015260448201879052519184169163759297bb91606481810192600092909190829003018183876161da5a03f11561000257505060408051600754600a54600d54600554600c5460a060020a850460ff161515865260208601929092528486019290925260608401529251600160a060020a0391821694509281169230909116917f3b3d1986083d191be01d28623dc19604728e29ae28bdb9ba52757fdee1a18de2919081900360800190a45050505050565b600954431015610f2657610002565b6001805460a060020a900460ff1614610f3e57610002565b6001805460a060020a60ff0219167402000000000000000000000000000000000000000017908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919750600160a060020a038816925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604051516007549095506000945060a060020a900460ff1615905061105c57600a5484111561105757600a54600d54670de0b6b3a7640000918603020492505b61107e565b600a5484101561107e57600a54600d54670de0b6b3a764000091869003020492505b60065483111561108e5760065492505b6006548390039150600083111561111857604080516005546007547f5928d37f000000000000000000000000000000000000000000000000000000008352600160a060020a0391821660048401528116602483015260448201869052915191871691635928d37f91606481810192600092909190829003018183876161da5a03f115610002575050505b600082111561117a576040805160055460e060020a63599efa6b028252600160a060020a0390811660048301526024820185905291519187169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050505b6040805185815260208101849052808201859052905130600160a060020a0316917f89e690b1d5aaae14f3e85f108dc92d9ab3763a58d45aed8b59daedbbae8fe794919081900360600190a260008311156112285784600160a060020a0316634cc927d785336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050611282565b84600160a060020a0316634cc927d7600a60005054336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f115610002575050505b600054600160a060020a0316ff5b60156001820160ff166006811015610002578101549060ff8316600681101561000257015411156112c057610002565b60010161055e565b60015460a060020a900460ff166000146112e157610002565b600254600a0143116112f257610002565b6001546040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f11561000257505060408051805160055460065460e060020a63599efa6b028452600160a060020a03918216600485015260248401529251909450918416925063599efa6b916044808301926000929190829003018183876161da5a03f1156100025750505080600160a060020a0316632b68bb2d6040518160e060020a0281526004018090506000604051808303816000876161da5a03f115610002575050600054600160a060020a03169050ff5b6001546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602480830192602092919082900301816000876161da5a03f11561000257505060405151151590506106a85761000256", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396", - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000006195", - "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5842545553440000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000070c9217d814985faef62b124420f8dfbddd96433", - "0x0000000000000000000000000000000000000000000000000000000000000006": "0x0000000000000000000000000000000000000000000000008ac7230489e80000", - "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0000000000000000000000000000000000000000000000283c7b9181eca20000" - } - }, - "0xcf00ffd997ad14939736f026006498e3f099baaf": { - "balance": "0x0", - "code": "0x606060405236156100cf5760e060020a600035046302d05d3f81146100d7578063031e7f5d146100e95780631ab9075a1461010b5780632243118a1461014657806327aad68a1461016557806338a699a4146101da5780635188f996146101f8578063581d5d601461021e57806381738c5914610246578063977da54014610269578063a07421ce14610288578063a7f43779146102be578063bdbdb086146102dc578063e1c7111914610303578063f4f2821b14610325578063f905c15a1461034a578063f92eb77414610353575b610387610002565b610389600054600160a060020a031681565b610387600435602435600254600160a060020a0316600014156103a857610002565b610387600435600254600160a060020a031660001480159061013c575060025433600160a060020a03908116911614155b1561042957610002565b610387600435600254600160a060020a03166000141561044b57610002565b6102ac60043560008181526004602081815260408320547f524d81d3000000000000000000000000000000000000000000000000000000006060908152610100909104600160a060020a031692839263524d81d3926064928188876161da5a03f1156100025750506040515192506103819050565b61039c60043560008181526004602052604090205460ff165b919050565b6103876004356024356002546000908190600160a060020a031681141561079457610002565b61038760043560243560025460009081908190600160a060020a031681141561080457610002565b61038960043560008181526004602052604081205460ff1615156109e357610002565b610387600435600254600160a060020a0316600014156109fb57610002565b600435600090815260096020526040902054670de0b6b3a764000090810360243502045b60408051918252519081900360200190f35b61038760025433600160a060020a03908116911614610a9257610002565b600435600090815260086020526040902054670de0b6b3a7640000602435909102046102ac565b610387600435602435600254600160a060020a031660001415610aa057610002565b61038760043560025460009081908190600160a060020a0316811415610b3657610002565b6102ac60035481565b6102ac600435600081815260076020908152604080832054600690925290912054670de0b6b3a76400000204805b50919050565b005b600160a060020a03166060908152602090f35b15156060908152602090f35b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b906084906020906024816000876161da5a03f11561000257505060405151151590506103fe57610002565b60008281526004602052604090205460ff16151561041b57610002565b600860205260406000205550565b6002805473ffffffffffffffffffffffffffffffffffffffff19168217905550565b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b906084906020906024816000876161da5a03f11561000257505060405151151590506104a157610002565b604080516000838152600460205291909120805460ff1916600117905561040280610de2833901809050604051809103906000f0600460005060008360001916815260200190815260200160002060005060000160016101000a815481600160a060020a030219169083021790555066470de4df8200006008600050600083600019168152602001908152602001600020600050819055506703782dace9d9000060096000506000836000191681526020019081526020016000206000508190555050565b600460005060008560001916815260200190815260200160002060005060000160019054906101000a9004600160a060020a0316915081600160a060020a031663524d81d36040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151821415905061060057838152600660209081526040808320839055600790915281208190555b81600160a060020a0316630a3b0a4f846040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f11561000257505050600160a060020a038316808252600560209081526040808420879055805160e160020a6364a81ff102815290518694670de0b6b3a7640000949363c9503fe29360048181019492939183900301908290876161da5a03f11561000257505060408051805160e060020a636f265b930282529151919291636f265b939160048181019260209290919082900301816000876161da5a03f11561000257505050604051805190602001500204600660005060008660001916815260200190815260200160002060008282825054019250508190555080600160a060020a031663c9503fe26040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015060076000506000866000191681526020019081526020016000206000828282505401925050819055505b50505050565b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b9060849060209060248187876161da5a03f11561000257505060405151151590506107e957610002565b8381526004602052604081205460ff16151561056657610002565b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b9060849060209060248187876161da5a03f115610002575050604051511515905061085957610002565b849250670de0b6b3a764000083600160a060020a031663c9503fe26040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575060408051805160e160020a6364a81ff102825291519189028590049650600481810192602092909190829003018188876161da5a03f11561000257505060408051805160e060020a636f265b930282529151919291636f265b9391600481810192602092909190829003018189876161da5a03f115610002575050506040518051906020015002049050806006600050600085600160a060020a0316632e94420f6040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750604080518051855260208681528286208054989098039097557f2e94420f00000000000000000000000000000000000000000000000000000000815290518896600483810193919291829003018187876161da5a03f115610002575050604080515183526020939093525020805490910190555050505050565b60409020546101009004600160a060020a03166101f3565b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b906084906020906024816000876161da5a03f1156100025750506040515115159050610a5157610002565b60008181526004602052604090205460ff161515610a6e57610002565b6040600020805474ffffffffffffffffffffffffffffffffffffffffff1916905550565b600254600160a060020a0316ff5b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b906084906020906024816000876161da5a03f1156100025750506040515115159050610af657610002565b60008281526004602052604090205460ff161515610b1357610002565b670de0b6b3a7640000811115610b2857610002565b600960205260406000205550565b60025460e060020a6313bc6d4b02606090815233600160a060020a03908116606452909116906313bc6d4b9060849060209060248187876161da5a03f1156100025750506040515115159050610b8b57610002565b600160a060020a038416815260056020908152604080832054808452600490925282205490935060ff161515610bc057610002565b600460005060008460001916815260200190815260200160002060005060000160019054906101000a9004600160a060020a0316915081600160a060020a031663b9caebf4856040518260e060020a0281526004018082600160a060020a031681526020019150506000604051808303816000876161da5a03f115610002575050506005600050600085600160a060020a0316815260200190815260200160002060005060009055839050600082600160a060020a031663524d81d36040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519190911115905061078e57670de0b6b3a764000081600160a060020a031663c9503fe26040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060408051805160e060020a636f265b930282529151919291636f265b939160048181019260209290919082900301816000876161da5a03f11561000257505050604051805190602001500204600660005060008560001916815260200190815260200160002060008282825054039250508190555080600160a060020a031663c9503fe26040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050506040518051906020015060076000506000856000191681526020019081526020016000206000828282505403925050819055505050505056606060405260008054600160a060020a031916331790556103de806100246000396000f3606060405236156100615760e060020a600035046302d05d3f81146100695780630a3b0a4f1461007b5780630d327fa7146100f6578063524d81d314610109578063a7f4377914610114578063b9caebf414610132578063bbec3bae14610296575b6102ce610002565b6102d0600054600160a060020a031681565b6102ce600435600254600090600160a060020a03168114156102ed5760028054600160a060020a03199081168417808355600160a060020a03808616855260036020526040852060018101805493831694909316939093179091559154815461010060a860020a031916921661010002919091179055610372565b6102d0600254600160a060020a03165b90565b6102e3600154610106565b6102ce60005433600160a060020a039081169116146103c657610002565b6102ce600435600160a060020a038116600090815260036020526040812054819060ff16801561016457506001548190115b1561029157506040808220600180820154915461010090819004600160a060020a039081168087528587209093018054600160a060020a031916948216948517905583865293909420805461010060a860020a03191694820294909417909355600254909190811690841614156101e85760028054600160a060020a031916821790555b600254600160a060020a0390811690841614156102105760028054600160a060020a03191690555b6003600050600084600160a060020a0316815260200190815260200160002060006000820160006101000a81549060ff02191690556000820160016101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a03021916905550506001600081815054809291906001900391905055505b505050565b600160a060020a036004358181166000908152600360205260408120600101546002546102d09491821691168114156103d4576103d8565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60028054600160a060020a03908116835260036020526040808420805461010060a860020a0319808216610100808a029190911790935590829004841680875283872060019081018054600160a060020a03199081168b179091559654868a168952949097209687018054949095169390951692909217909255835416908202179091555b60016003600050600084600160a060020a0316815260200190815260200160002060005060000160006101000a81548160ff0219169083021790555060016000818150548092919060010191905055505050565b600054600160a060020a0316ff5b8091505b5091905056", - "nonce": "3", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396", - "0x3571d73f14f31a1463bd0a2f92f7fde1653d4e1ead7aedf4b0a5df02f16092ab": "0x0000000000000000000000000000000000000000000007d634e4c55188be0000", - "0x4e64fe2d1b72d95a0a31945cc6e4f4e524ac5ad56d6bd44a85ec7bc9cc0462c0": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000" - } - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "117124093", - "extraData": "0xd5830105008650617269747986312e31322e31826d61", - "gasLimit": "4707788", - "hash": "0xad325e4c49145fb7a4058a68ac741cc8607a71114e23fc88083c7e881dd653e7", - "miner": "0x00714b9ac97fd6bd9325a059a70c9b9fa94ce050", - "mixHash": "0x0af918f65cb4af04b608fc1f14a849707696986a0e7049e97ef3981808bcc65f", - "nonce": "0x38dee147326a8d40", - "number": "25000", - "stateRoot": "0xc5d6bbcd46236fcdcc80b332ffaaa5476b980b01608f9708408cfef01b58bd5b", - "timestamp": "1479891517", - "totalDifficulty": "1895410389427" - }, - "input": "0xf88b8206628504a817c8008303d09094c212e03b9e060e36facad5fd8f4435412ca22e6b80a451a34eb80000000000000000000000000000000000000000000000280faf689c35ac00002aa0a7ee5b7877811bf671d121b40569462e722657044808dc1d6c4f1e4233ec145ba0417e7543d52b65738d9df419cbe40a708424f4d54b0fc145c0a64545a2bb1065", - "result": { - "calls": [ - { - "from": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "gas": "0x31217", - "gasUsed": "0x334", - "input": "0xe16c7d98636f6e7472616374617069000000000000000000000000000000000000000000", - "output": "0x000000000000000000000000b4fe7aa695b326c9d219158d2ca50db77b39f99f", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f", - "gas": "0x2a68d", - "gasUsed": "0x334", - "input": "0xe16c7d98636f6e747261637463746c000000000000000000000000000000000000000000", - "output": "0x0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x23ac9", - "gasUsed": "0x334", - "input": "0xe16c7d98636f6e7472616374646200000000000000000000000000000000000000000000", - "output": "0x0000000000000000000000007986bad81f4cbd9317f5a46861437dae58d69113", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x23366", - "gasUsed": "0x273", - "input": "0x16c66cc6000000000000000000000000c212e03b9e060e36facad5fd8f4435412ca22e6b", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x7986bad81f4cbd9317f5a46861437dae58d69113", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f", - "gas": "0x29f35", - "gasUsed": "0xf8d", - "input": "0x16c66cc6000000000000000000000000c212e03b9e060e36facad5fd8f4435412ca22e6b", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f", - "gas": "0x28a9e", - "gasUsed": "0x334", - "input": "0xe16c7d98636f6e747261637463746c000000000000000000000000000000000000000000", - "output": "0x0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x21d79", - "gasUsed": "0x24d", - "input": "0x13bc6d4b000000000000000000000000b4fe7aa695b326c9d219158d2ca50db77b39f99f", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x2165b", - "gasUsed": "0x334", - "input": "0xe16c7d986d61726b65746462000000000000000000000000000000000000000000000000", - "output": "0x000000000000000000000000cf00ffd997ad14939736f026006498e3f099baaf", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x1a8e8", - "gasUsed": "0x24d", - "input": "0x13bc6d4b0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x1a2c6", - "gasUsed": "0x3cb", - "input": "0xc9503fe2", - "output": "0x0000000000000000000000000000000000000000000000008ac7230489e80000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x19b72", - "gasUsed": "0x3cb", - "input": "0xc9503fe2", - "output": "0x0000000000000000000000000000000000000000000000008ac7230489e80000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x19428", - "gasUsed": "0x305", - "input": "0x6f265b93", - "output": "0x0000000000000000000000000000000000000000000000283c7b9181eca20000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x18d45", - "gasUsed": "0x229", - "input": "0x2e94420f", - "output": "0x5842545553440000000000000000000000000000000000000000000000000000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "gas": "0x1734e", - "gasUsed": "0x229", - "input": "0x2e94420f", - "output": "0x5842545553440000000000000000000000000000000000000000000000000000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x20ee1", - "gasUsed": "0x5374", - "input": "0x581d5d60000000000000000000000000c212e03b9e060e36facad5fd8f4435412ca22e6b0000000000000000000000000000000000000000000000280faf689c35ac0000", - "output": "0x", - "to": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x1b6c1", - "gasUsed": "0x334", - "input": "0xe16c7d986c6f676d67720000000000000000000000000000000000000000000000000000", - "output": "0x0000000000000000000000002a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x1af69", - "gasUsed": "0x229", - "input": "0x2e94420f", - "output": "0x5842545553440000000000000000000000000000000000000000000000000000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0x2a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "gas": "0x143a5", - "gasUsed": "0x24d", - "input": "0x13bc6d4b0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x1a91d", - "gasUsed": "0x12fa", - "input": "0x0accce0600000000000000000000000000000000000000000000000000000000000000025842545553440000000000000000000000000000000000000000000000000000000000000000000000000000c212e03b9e060e36facad5fd8f4435412ca22e6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "to": "0x2a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x19177", - "gasUsed": "0x334", - "input": "0xe16c7d986c6f676d67720000000000000000000000000000000000000000000000000000", - "output": "0x0000000000000000000000002a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x18a22", - "gasUsed": "0x229", - "input": "0x2e94420f", - "output": "0x5842545553440000000000000000000000000000000000000000000000000000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x18341", - "gasUsed": "0x334", - "input": "0xe16c7d986d61726b65746462000000000000000000000000000000000000000000000000", - "output": "0x000000000000000000000000cf00ffd997ad14939736f026006498e3f099baaf", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x17bec", - "gasUsed": "0x229", - "input": "0x2e94420f", - "output": "0x5842545553440000000000000000000000000000000000000000000000000000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - }, - { - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x1764e", - "gasUsed": "0x45c", - "input": "0xf92eb7745842545553440000000000000000000000000000000000000000000000000000", - "output": "0x00000000000000000000000000000000000000000000002816d180e30c390000", - "to": "0xcf00ffd997ad14939736f026006498e3f099baaf", - "type": "CALL", - "value": "0x0" - }, - { - "calls": [ - { - "from": "0x2a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "gas": "0x108ba", - "gasUsed": "0x24d", - "input": "0x13bc6d4b0000000000000000000000003e9286eafa2db8101246c2131c09b49080d00690", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x2cccf5e0538493c235d1c5ef6580f77d99e91396", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "gas": "0x16e62", - "gasUsed": "0xebb", - "input": "0x645a3b72584254555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002816d180e30c390000", - "output": "0x", - "to": "0x2a98c5f40bfa3dee83431103c535f6fae9a8ad38", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f", - "gas": "0x283b9", - "gasUsed": "0xc51c", - "input": "0x949ae479000000000000000000000000c212e03b9e060e36facad5fd8f4435412ca22e6b0000000000000000000000000000000000000000000000280faf689c35ac0000", - "output": "0x", - "to": "0x3e9286eafa2db8101246c2131c09b49080d00690", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "gas": "0x30b4a", - "gasUsed": "0xedb7", - "input": "0x51a34eb80000000000000000000000000000000000000000000000280faf689c35ac0000", - "output": "0x", - "to": "0xb4fe7aa695b326c9d219158d2ca50db77b39f99f", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", - "gasUsed": "0x1810b", - "input": "0x51a34eb80000000000000000000000000000000000000000000000280faf689c35ac0000", - "output": "0x", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_delegatecall.json b/node/cn/tracers/testdata/call_tracer_delegatecall.json deleted file mode 100644 index 4c5e4e378..000000000 --- a/node/cn/tracers/testdata/call_tracer_delegatecall.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "context": { - "difficulty": "31927752", - "gasLimit": "4707788", - "miner": "0x5659922ce141eedbc2733678f9806c77b4eebee8", - "number": "11495", - "timestamp": "1479735917" - }, - "genesis": { - "alloc": { - "0x13204f5d64c28326fd7bd05fd4ea855302d7f2ff": { - "balance": "0x0", - "code": "0x606060405236156100825760e060020a60003504630a0313a981146100875780630a3b0a4f146101095780630cd40fea1461021257806329092d0e1461021f5780634cd06a5f146103295780635dbe47e8146103395780637a9e5410146103d9578063825db5f7146103e6578063a820b44d146103f3578063efa52fb31461047a575b610002565b34610002576104fc600435600060006000507342b02b5deeb78f34cd5ac896473b63e6c99a71a26333556e849091846000604051602001526040518360e060020a028152600401808381526020018281526020019250505060206040518083038186803b156100025760325a03f415610002575050604051519150505b919050565b346100025761051060043560006000507342b02b5deeb78f34cd5ac896473b63e6c99a71a2637d65837a9091336000604051602001526040518360e060020a0281526004018083815260200182600160a060020a031681526020019250505060206040518083038186803b156100025760325a03f4156100025750506040515115905061008257604080517f21ce24d4000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038416602483015291517342b02b5deeb78f34cd5ac896473b63e6c99a71a2926321ce24d49260448082019391829003018186803b156100025760325a03f415610002575050505b50565b3461000257610512600181565b346100025761051060043560006000507342b02b5deeb78f34cd5ac896473b63e6c99a71a2637d65837a9091336000604051602001526040518360e060020a0281526004018083815260200182600160a060020a031681526020019250505060206040518083038186803b156100025760325a03f4156100025750506040515115905061008257604080517f89489a87000000000000000000000000000000000000000000000000000000008152600060048201819052600160a060020a038416602483015291517342b02b5deeb78f34cd5ac896473b63e6c99a71a2926389489a879260448082019391829003018186803b156100025760325a03f4156100025750505061020f565b3461000257610528600435610403565b34610002576104fc600435604080516000602091820181905282517f7d65837a00000000000000000000000000000000000000000000000000000000815260048101829052600160a060020a0385166024820152925190927342b02b5deeb78f34cd5ac896473b63e6c99a71a292637d65837a92604480840193829003018186803b156100025760325a03f4156100025750506040515191506101049050565b3461000257610512600c81565b3461000257610512600081565b3461000257610528600061055660005b600060006000507342b02b5deeb78f34cd5ac896473b63e6c99a71a263685a1f3c9091846000604051602001526040518360e060020a028152600401808381526020018281526020019250505060206040518083038186803b156100025760325a03f4156100025750506040515191506101049050565b346100025761053a600435600060006000507342b02b5deeb78f34cd5ac896473b63e6c99a71a263f775b6b59091846000604051602001526040518360e060020a028152600401808381526020018281526020019250505060206040518083038186803b156100025760325a03f4156100025750506040515191506101049050565b604080519115158252519081900360200190f35b005b6040805160ff9092168252519081900360200190f35b60408051918252519081900360200190f35b60408051600160a060020a039092168252519081900360200190f35b90509056", - "nonce": "1", - "storage": { - "0x4d140b25abf3c71052885c66f73ce07cff141c1afabffdaf5cba04d625b7ebcc": "0x0000000000000000000000000000000000000000000000000000000000000001" - } - }, - "0x269296dddce321a6bcbaa2f0181127593d732cba": { - "balance": "0x0", - "code": "0x606060405236156101275760e060020a60003504630cd40fea811461012c578063173825d9146101395780631849cb5a146101c7578063285791371461030f5780632a58b3301461033f5780632cb0d48a146103565780632f54bf6e1461036a578063332b9f061461039d5780633ca8b002146103c55780633df4ddf4146103d557806341c0e1b5146103f457806347799da81461040557806362a51eee1461042457806366907d13146104575780637065cb48146104825780637a9e541014610496578063825db5f7146104a3578063949d225d146104b0578063a51687df146104c7578063b4da4e37146104e6578063b4e6850b146104ff578063bd7474ca14610541578063e75623d814610541578063e9938e1114610555578063f5d241d314610643575b610002565b3461000257610682600181565b34610002576106986004356106ff335b60006001600a9054906101000a9004600160a060020a0316600160a060020a0316635dbe47e8836000604051602001526040518260e060020a0281526004018082600160a060020a03168152602001915050602060405180830381600087803b156100025760325a03f1156100025750506040515191506103989050565b3461000257604080516101008082018352600080835260208084018290528385018290526060808501839052608080860184905260a080870185905260c080880186905260e09788018690526001605060020a0360043581168752600586529589902089519788018a528054808816808a52605060020a91829004600160a060020a0316978a01889052600183015463ffffffff8082169d8c018e905264010000000082048116988c01899052604060020a90910416958a018690526002830154948a01859052600390920154808916938a01849052049096169690970186905293969495949293604080516001605060020a03998a16815297891660208901529590971686860152600160a060020a03909316606086015263ffffffff9182166080860152811660a08501521660c083015260e08201929092529051908190036101000190f35b346100025761069a60043560018054600091829160ff60f060020a909104161515141561063d5761072833610376565b34610002576106ae6004546001605060020a031681565b34610002576106986004356108b333610149565b346100025761069a6004355b600160a060020a03811660009081526002602052604090205460ff1615156001145b919050565b34610002576106986001805460ff60f060020a9091041615151415610913576108ed33610376565b346100025761069a600435610149565b34610002576106ae6003546001605060020a03605060020a9091041681565b346100025761069861091533610149565b34610002576106ae6003546001605060020a0360a060020a9091041681565b346100025761069a60043560243560018054600091829160ff60f060020a909104161515141561095e5761092633610376565b34610002576106986004356001805460ff60f060020a909104161515141561072557610a8b33610376565b3461000257610698600435610aa533610149565b3461000257610682600c81565b3461000257610682600081565b34610002576106ae6003546001605060020a031681565b34610002576106ca600154600160a060020a03605060020a9091041681565b346100025761069a60015460ff60f060020a9091041681565b346100025761069a60043560243560443560643560843560a43560c43560018054600091829160ff60f060020a9091041615151415610b5857610ad233610376565b3461000257610698600435610bd633610149565b34610002576106e6600435604080516101008181018352600080835260208084018290528385018290526060808501839052608080860184905260a080870185905260c080880186905260e09788018690526001605060020a03808b168752600586529589902089519788018a5280548088168952600160a060020a03605060020a918290041696890196909652600181015463ffffffff8082169b8a019b909b5264010000000081048b1695890195909552604060020a90940490981691860182905260028301549086015260039091015480841696850196909652940416918101919091525b50919050565b346100025761069a60043560243560443560643560843560a43560018054600091829160ff60f060020a9091041615151415610c8e57610bfb33610376565b6040805160ff9092168252519081900360200190f35b005b604080519115158252519081900360200190f35b604080516001605060020a039092168252519081900360200190f35b60408051600160a060020a039092168252519081900360200190f35b6040805163ffffffff9092168252519081900360200190f35b1561012757600160a060020a0381166000908152600260205260409020805460ff191690555b50565b1561063d57506001605060020a0380831660009081526005602052604090208054909116151561075b576000915061063d565b604080516101008101825282546001605060020a038082168352600160a060020a03605060020a92839004166020840152600185015463ffffffff80821695850195909552640100000000810485166060850152604060020a90049093166080830152600284015460a0830152600384015480841660c08401520490911660e0820152610817905b8051600354600090819060016001605060020a0390911611610c995760038054605060020a60f060020a0319169055610ddf565b600380546001605060020a031981166000196001605060020a03928316011782558416600090815260056020526040812080547fffff000000000000000000000000000000000000000000000000000000000000168155600181810180546bffffffffffffffffffffffff191690556002820192909255909101805473ffffffffffffffffffffffffffffffffffffffff19169055915061063d565b1561012757600180547fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f060020a8302179055610725565b1561091357600480546001605060020a031981166001605060020a039091166001011790555b565b156101275733600160a060020a0316ff5b1561095e57506001605060020a03808416600090815260056020526040902080549091161515610965576000915061095e565b600191505b5092915050565b60038101546001605060020a0384811691161415610986576001915061095e565b604080516101008101825282546001605060020a038082168352600160a060020a03605060020a92839004166020840152600185015463ffffffff80821695850195909552640100000000810485166060850152604060020a90049093166080830152600284015460a0830152600384015480841660c08401520490911660e0820152610a12906107e3565b61095983825b80546003546001605060020a0391821691600091161515610de55760038054605060020a60a060020a031916605060020a84021760a060020a69ffffffffffffffffffff02191660a060020a84021781558301805473ffffffffffffffffffffffffffffffffffffffff19169055610ddf565b1561072557600480546001605060020a0319168217905550565b1561012757600160a060020a0381166000908152600260205260409020805460ff19166001179055610725565b15610b5857506001605060020a038088166000908152600560205260409020805490911615610b645760009150610b58565b6004546001605060020a0390811690891610610b3057600480546001605060020a03191660018a011790555b6003805460016001605060020a03821681016001605060020a03199092169190911790915591505b50979650505050505050565b80546001605060020a0319168817605060020a60f060020a031916605060020a880217815560018101805463ffffffff1916871767ffffffff0000000019166401000000008702176bffffffff00000000000000001916604060020a860217905560028101839055610b048982610a18565b156101275760018054605060020a60f060020a031916605060020a8302179055610725565b15610c8e57506001605060020a03808816600090815260056020526040902080549091161515610c2e5760009150610c8e565b8054605060020a60f060020a031916605060020a88021781556001808201805463ffffffff1916881767ffffffff0000000019166401000000008802176bffffffff00000000000000001916604060020a87021790556002820184905591505b509695505050505050565b6003546001605060020a03848116605060020a909204161415610d095760e084015160038054605060020a928302605060020a60a060020a031990911617808255919091046001605060020a031660009081526005602052604090200180546001605060020a0319169055610ddf565b6003546001605060020a0384811660a060020a909204161415610d825760c08401516003805460a060020a92830260a060020a69ffffffffffffffffffff021990911617808255919091046001605060020a03166000908152600560205260409020018054605060020a60a060020a0319169055610ddf565b505060c082015160e08301516001605060020a0380831660009081526005602052604080822060039081018054605060020a60a060020a031916605060020a8702179055928416825290200180546001605060020a031916831790555b50505050565b6001605060020a0384161515610e6457600380546001605060020a03605060020a9182900481166000908152600560205260409020830180546001605060020a0319908116871790915583548785018054918590049093168402605060020a60a060020a03199182161790911690915582549185029116179055610ddf565b506001605060020a038381166000908152600560205260409020600390810180549185018054605060020a60a060020a0319908116605060020a94859004909516808502959095176001605060020a0319168817909155815416918402919091179055801515610ef4576003805460a060020a69ffffffffffffffffffff02191660a060020a8402179055610ddf565b6003808401546001605060020a03605060020a9091041660009081526005602052604090200180546001605060020a031916831790555050505056", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000113204f5d64c28326fd7bd05fd4ea855302d7f2ff00000000000000000000" - } - }, - "0x42b02b5deeb78f34cd5ac896473b63e6c99a71a2": { - "balance": "0x0", - "code": "0x6504032353da7150606060405236156100695760e060020a60003504631bf7509d811461006e57806321ce24d41461008157806333556e84146100ec578063685a1f3c146101035780637d65837a1461011757806389489a8714610140578063f775b6b5146101fc575b610007565b61023460043560006100fd82600061010d565b610246600435602435600160a060020a03811660009081526020839052604081205415156102cb57826001016000508054806001018281815481835581811511610278576000838152602090206102789181019083015b808211156102d057600081556001016100d8565b610248600435602435600182015481105b92915050565b6102346004356024355b60018101906100fd565b610248600435602435600160a060020a03811660009081526020839052604090205415156100fd565b61024660043560243580600160a060020a031632600160a060020a03161415156101f857600160a060020a038116600090815260208390526040902054156101f857600160a060020a038116600090815260208390526040902054600183018054909160001901908110156100075760009182526020808320909101805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a038316825283905260408120556002820180546000190190555b5050565b61025c60043560243560008260010160005082815481101561000757600091825260209091200154600160a060020a03169392505050565b60408051918252519081900360200190f35b005b604080519115158252519081900360200190f35b60408051600160a060020a039092168252519081900360200190f35b50505060009283526020808420909201805473ffffffffffffffffffffffffffffffffffffffff191686179055600160a060020a0385168352908590526040909120819055600284018054600101905590505b505050565b509056", - "nonce": "1", - "storage": {} - }, - "0xa529806c67cc6486d4d62024471772f47f6fd672": { - "balance": "0x67820e39ac8fe9800", - "code": "0x", - "nonce": "68", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "31912170", - "extraData": "0xd783010502846765746887676f312e372e33856c696e7578", - "gasLimit": "4712388", - "hash": "0x0855914bdc581bccdc62591fd438498386ffb59ea4d5361ed5c3702e26e2c72f", - "miner": "0x334391aa808257952a462d1475562ee2106a6c90", - "mixHash": "0x64bb70b8ca883cadb8fbbda2c70a861612407864089ed87b98e5de20acceada6", - "nonce": "0x684129f283aaef18", - "number": "11494", - "stateRoot": "0x7057f31fe3dab1d620771adad35224aae43eb70e94861208bc84c557ff5b9d10", - "timestamp": "1479735912", - "totalDifficulty": "90744064339" - }, - "input": "0xf889448504a817c800832dc6c094269296dddce321a6bcbaa2f0181127593d732cba80a47065cb480000000000000000000000001523e55a1ca4efbae03355775ae89f8d7699ad9e29a080ed81e4c5e9971a730efab4885566e2c868cd80bd4166d0ed8c287fdf181650a069d7c49215e3d4416ad239cd09dbb71b9f04c16b33b385d14f40b618a7a65115", - "result": { - "calls": [ - { - "calls": [ - { - "from": "0x13204f5d64c28326fd7bd05fd4ea855302d7f2ff", - "gas": "0x2bf459", - "gasUsed": "0x2aa", - "input": "0x7d65837a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a529806c67cc6486d4d62024471772f47f6fd672", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x42b02b5deeb78f34cd5ac896473b63e6c99a71a2", - "type": "DELEGATECALL" - } - ], - "from": "0x269296dddce321a6bcbaa2f0181127593d732cba", - "gas": "0x2cae73", - "gasUsed": "0xa9d", - "input": "0x5dbe47e8000000000000000000000000a529806c67cc6486d4d62024471772f47f6fd672", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x13204f5d64c28326fd7bd05fd4ea855302d7f2ff", - "type": "CALL", - "value": "0x0" - } - ], - "from": "0xa529806c67cc6486d4d62024471772f47f6fd672", - "gas": "0x2d6e28", - "gasUsed": "0xbd55", - "input": "0x7065cb480000000000000000000000001523e55a1ca4efbae03355775ae89f8d7699ad9e", - "output": "0x", - "to": "0x269296dddce321a6bcbaa2f0181127593d732cba", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_delegatecall_a.json b/node/cn/tracers/testdata/call_tracer_delegatecall_a.json deleted file mode 100644 index 51b828a64..000000000 --- a/node/cn/tracers/testdata/call_tracer_delegatecall_a.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with DELEGATECALL opcode from an internal transaction. The associated code is under testdata/contracts/DelegateCaller.sol.", - "context": { - "blockscore": "0x1", - "number": "36881228", - "timestamp": "1598436657" - }, - "genesis": { - "alloc": { - "0x13cf0d18bcb898efd4e85ae2bb65a443ab86023c": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c605f76c14602d575b600080fd5b60336035565b005b56fea165627a7a7230582014f02734fa3172fdb1bcf42f334c98ade1dfeb64d80a33e3e3b5dd800d93b2700029", - "nonce": "1", - "storage": {} - }, - "0x2074f91470365144df78c333948814fe4158af5a": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80633917b3df14610030575b600080fd5b61003861003a565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106101285780518252602082019150602081019050602083039250610105565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610188576040519150601f19603f3d011682016040523d82523d6000602084013e61018d565b606091505b50505056fea165627a7a7230582052ae56a4e5563cef4bf5c1154adde217083522d53bf2eb6ffc1728410a645b120029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000013cf0d18bcb898efd4e85ae2bb65a443ab86023c" - } - }, - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x4414100ed4daac00", - "code": "0x", - "nonce": "30", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841642c8e7207b41f92fb62c726c4a50536416edd54eb08a0f62433635c84be277b733c6a6765c1b6919c80d2db4ddaed51b2fa7304be97f7272517018c0a9869d000f8c9b841da36a903c151a41d2215d4837cf671e527eb39f4646d455346b2ee8c9027285f663cbbbd92ba7355f8c6f6cf7ff760a6eec8cda42b3a45c62b838fae37eb80c101b8418e51eda2a892e37f4839cec7428b26a584232afdf1e34d9f66d8207afef3180a61092b6fff6a3f8de7e6e5ce998508ba88cb62d4fe2d587a28420fb3b33c5fbb01b841347cb82b6ff94bd8fd1ab72862bd72ebd9d0f60e7417cd68db8ad3deb4a8a25752d0ae75199e3a564e48b4f75864750f0925aaf67a2d5ede57ac6bf1093b261100", - "hash": "0x1df11f589d9223abb03309e965039c35764c6f220b50790d1a2de581ee4534a4", - "number": "36881227", - "reward": "0xa86fd667c6a340c53cc5d796ba84dbe1f29cb2f7", - "stateRoot": "0x398a2e82ae0f28e8679fb8961537103466a5453c1453b8f839242980980761f4", - "timestamp": "1598436656", - "timestampFoS": 1, - "totalBlockScore": "0x232c34c", - "voteData": "0x" - }, - "input": "0xf86a1e8505d21dba00825952942074f91470365144df78c333948814fe4158af5a80843917b3df8207f6a0e1d66cd31b35d9904ea3fa00e4b5168461f05bf77df19728675b061ee1d22b07a00d9ddb2f09af2a067796f04856a052c328c186b6c150bf869590282a5930d48c", - "result": { - "calls": [ - { - "from": "0x2074f91470365144df78c333948814fe4158af5a", - "gas": "0xb3", - "gasUsed": "0x7a", - "input": "0xc605f76c", - "output": "0x", - "to": "0x13cf0d18bcb898efd4e85ae2bb65a443ab86023c", - "type": "DELEGATECALL" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x63a", - "gasUsed": "0x5952", - "input": "0x3917b3df", - "output": "0x", - "to": "0x2074f91470365144df78c333948814fe4158af5a", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_inner_instafail.json b/node/cn/tracers/testdata/call_tracer_inner_instafail.json deleted file mode 100644 index c1ed766ef..000000000 --- a/node/cn/tracers/testdata/call_tracer_inner_instafail.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "genesis": { - "difficulty": "117067574", - "extraData": "0xd783010502846765746887676f312e372e33856c696e7578", - "gasLimit": "4712380", - "hash": "0xe05db05eeb3f288041ecb10a787df121c0ed69499355716e17c307de313a4486", - "miner": "0x0c062b329265c965deef1eede55183b3acb8f611", - "mixHash": "0xb669ae39118a53d2c65fd3b1e1d3850dd3f8c6842030698ed846a2762d68b61d", - "nonce": "0x2b469722b8e28c45", - "number": "24973", - "stateRoot": "0x532a5c3f75453a696428db078e32ae283c85cb97e4d8560dbdf022adac6df369", - "timestamp": "1479891145", - "totalDifficulty": "1892250259406", - "alloc": { - "0x6c06b16512b332e6cd8293a2974872674716ce18": { - "balance": "0x0", - "nonce": "1", - "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900480632e1a7d4d146036575b6000565b34600057604e60048080359060200190919050506050565b005b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f19350505050505b5056", - "storage": {} - }, - "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31": { - "balance": "0x229ebbb36c3e0f20", - "nonce": "3", - "code": "0x", - "storage": {} - } - }, - "config": { - "chainId": 3, - "homesteadBlock": 0, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "byzantiumBlock": 1700000, - "constantinopleBlock": 4230000, - "petersburgBlock": 4939394, - "istanbulBlock": 6485846, - "muirGlacierBlock": 7117117, - "ethash": {} - } - }, - "context": { - "number": "24974", - "difficulty": "117067574", - "timestamp": "1479891162", - "gasLimit": "4712388", - "miner": "0xc822ef32e6d26e170b70cf761e204c1806265914" - }, - "input": "0xf889038504a81557008301f97e946c06b16512b332e6cd8293a2974872674716ce1880a42e1a7d4d00000000000000000000000000000000000000000000000014d1120d7b1600002aa0e2a6558040c5d72bc59f2fb62a38993a314c849cd22fb393018d2c5af3112095a01bdb6d7ba32263ccc2ecc880d38c49d9f0c5a72d8b7908e3122b31356d349745", - "result": { - "type": "CALL", - "from": "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31", - "to": "0x6c06b16512b332e6cd8293a2974872674716ce18", - "value": "0x0", - "gas": "0x1a466", - "gasUsed": "0x72de", - "input": "0x2e1a7d4d00000000000000000000000000000000000000000000000014d1120d7b160000", - "output": "0x", - "calls": [ - { - "type": "CALL", - "from": "0x6c06b16512b332e6cd8293a2974872674716ce18", - "to": "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31", - "value": "0x14d1120d7b160000", - "error":"internal failure", - "input": "0x" - } - ] - } -} diff --git a/node/cn/tracers/testdata/call_tracer_inner_throw_outer_revert.json b/node/cn/tracers/testdata/call_tracer_inner_throw_outer_revert.json deleted file mode 100644 index c1fca659d..000000000 --- a/node/cn/tracers/testdata/call_tracer_inner_throw_outer_revert.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "context": { - "difficulty": "3956606365", - "gasLimit": "5413248", - "miner": "0x00d8ae40d9a06d0e7a2877b62e32eb959afbe16d", - "number": "2295104", - "timestamp": "1513681256" - }, - "genesis": { - "alloc": { - "0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76": { - "balance": "0x0", - "code": "0x60606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625b4487146101a257806311df9995146101cb578063278ecde11461022057806330adce0e146102435780633197cbb61461026c5780634bb278f3146102955780636103d70b146102aa57806363a599a4146102bf5780636a2d1cb8146102d457806375f12b21146102fd57806378e979251461032a578063801db9cc1461035357806386d1a69f1461037c5780638da5cb5b146103915780638ef26a71146103e65780639890220b1461040f5780639b39caef14610424578063b85dfb801461044d578063be9a6555146104a1578063ccb07cef146104b6578063d06c91e4146104e3578063d669e1d414610538578063df40503c14610561578063e2982c2114610576578063f02e030d146105c3578063f2fde38b146105d8578063f3283fba14610611575b600060149054906101000a900460ff1615151561017a57600080fd5b60075442108061018b575060085442115b15151561019757600080fd5b6101a03361064a565b005b34156101ad57600080fd5b6101b5610925565b6040518082815260200191505060405180910390f35b34156101d657600080fd5b6101de61092b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561022b57600080fd5b6102416004808035906020019091905050610951565b005b341561024e57600080fd5b610256610c48565b6040518082815260200191505060405180910390f35b341561027757600080fd5b61027f610c4e565b6040518082815260200191505060405180910390f35b34156102a057600080fd5b6102a8610c54565b005b34156102b557600080fd5b6102bd610f3e565b005b34156102ca57600080fd5b6102d261105d565b005b34156102df57600080fd5b6102e76110d5565b6040518082815260200191505060405180910390f35b341561030857600080fd5b6103106110e1565b604051808215151515815260200191505060405180910390f35b341561033557600080fd5b61033d6110f4565b6040518082815260200191505060405180910390f35b341561035e57600080fd5b6103666110fa565b6040518082815260200191505060405180910390f35b341561038757600080fd5b61038f611104565b005b341561039c57600080fd5b6103a4611196565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103f157600080fd5b6103f96111bb565b6040518082815260200191505060405180910390f35b341561041a57600080fd5b6104226111c1565b005b341561042f57600080fd5b610437611296565b6040518082815260200191505060405180910390f35b341561045857600080fd5b610484600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061129c565b604051808381526020018281526020019250505060405180910390f35b34156104ac57600080fd5b6104b46112c0565b005b34156104c157600080fd5b6104c9611341565b604051808215151515815260200191505060405180910390f35b34156104ee57600080fd5b6104f6611354565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561054357600080fd5b61054b61137a565b6040518082815260200191505060405180910390f35b341561056c57600080fd5b610574611385565b005b341561058157600080fd5b6105ad600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116c3565b6040518082815260200191505060405180910390f35b34156105ce57600080fd5b6105d66116db565b005b34156105e357600080fd5b61060f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611829565b005b341561061c57600080fd5b610648600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118fe565b005b600080670de0b6b3a7640000341015151561066457600080fd5b61069b610696670de0b6b3a7640000610688610258346119d990919063ffffffff16565b611a0c90919063ffffffff16565b611a27565b9150660221b262dd80006106ba60065484611a7e90919063ffffffff16565b111515156106c757600080fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156107d557600080fd5b6102c65a03f115156107e657600080fd5b5050506040518051905050610808828260010154611a7e90919063ffffffff16565b8160010181905550610827348260000154611a7e90919063ffffffff16565b816000018190555061084434600554611a7e90919063ffffffff16565b60058190555061085f82600654611a7e90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c836040518082815260200191505060405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8583600554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60025481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060085442108061096b5750651b48eb57e00060065410155b15151561097757600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154821415156109c757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515610ac857600080fd5b6102c65a03f11515610ad957600080fd5b5050506040518051905050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68836000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610b7d57600080fd5b6102c65a03f11515610b8e57600080fd5b505050604051805190501515610ba357600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000811115610c4457610c433382611a9c565b5b5050565b60055481565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cb157600080fd5b600854421015610cd357660221b262dd8000600654141515610cd257600080fd5b5b651b48eb57e000600654108015610cf057506213c6806008540142105b151515610cfc57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610d7557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610e3a57600080fd5b6102c65a03f11515610e4b57600080fd5b5050506040518051905090506000811115610f2057600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68826000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610ef957600080fd5b6102c65a03f11515610f0a57600080fd5b505050604051805190501515610f1f57600080fd5b5b6001600960006101000a81548160ff02191690831515021790555050565b600080339150600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114151515610f9657600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515610fbc57600080fd5b610fd181600254611b5090919063ffffffff16565b6002819055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561105957fe5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b857600080fd5b6001600060146101000a81548160ff021916908315150217905550565b670de0b6b3a764000081565b600060149054906101000a900460ff1681565b60075481565b651b48eb57e00081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561115f57600080fd5b600060149054906101000a900460ff16151561117a57600080fd5b60008060146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561121c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561129457600080fd5b565b61025881565b600a6020528060005260406000206000915090508060000154908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561131b57600080fd5b600060075414151561132c57600080fd5b4260078190555062278d004201600881905550565b600960009054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b660221b262dd800081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113e557600080fd5b600654660221b262dd800003925061142b670de0b6b3a764000061141c610258670de0b6b3a76400006119d990919063ffffffff16565b81151561142557fe5b04611a27565b915081831115151561143c57600080fd5b600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561158c57600080fd5b6102c65a03f1151561159d57600080fd5b50505060405180519050506115bf838260010154611a7e90919063ffffffff16565b81600101819055506115dc83600654611a7e90919063ffffffff16565b6006819055503073ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c846040518082815260200191505060405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e856000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561173657600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561181357600080fd5b6102c65a03f1151561182457600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561188457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156118fb57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561195957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561199557600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828402905060008414806119fa57508284828115156119f757fe5b04145b1515611a0257fe5b8091505092915050565b6000808284811515611a1a57fe5b0490508091505092915050565b6000611a416202a300600754611a7e90919063ffffffff16565b421015611a7557611a6e611a5f600584611a0c90919063ffffffff16565b83611a7e90919063ffffffff16565b9050611a79565b8190505b919050565b6000808284019050838110151515611a9257fe5b8091505092915050565b611aee81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a7e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4681600254611a7e90919063ffffffff16565b6002819055505050565b6000828211151515611b5e57fe5b8183039050929150505600a165627a7a72305820ec0d82a406896ccf20989b3d6e650abe4dc104e400837f1f58e67ef499493ae90029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000008d69d00910d0b2afb2a99ed6c16c8129fa8e1751", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000e819f024b41358d2c08e3a868a5c5dd0566078d4", - "0x0000000000000000000000000000000000000000000000000000000000000007": "0x000000000000000000000000000000000000000000000000000000005a388981", - "0x0000000000000000000000000000000000000000000000000000000000000008": "0x000000000000000000000000000000000000000000000000000000005a3b38e6" - } - }, - "0xd4fcab9f0a6dc0493af47c864f6f17a8a5e2e826": { - "balance": "0x2a2dd979a35cf000", - "code": "0x", - "nonce": "0", - "storage": {} - }, - "0xe819f024b41358d2c08e3a868a5c5dd0566078d4": { - "balance": "0x0", - "code": "0x6060604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100bf578063095ea7b31461014d57806318160ddd146101a757806323b872dd146101d0578063313ce5671461024957806342966c681461027257806370a08231146102ad5780638da5cb5b146102fa57806395d89b411461034f578063a9059cbb146103dd578063dd62ed3e14610437578063f2fde38b146104a3575b600080fd5b34156100ca57600080fd5b6100d26104dc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101125780820151818401526020810190506100f7565b50505050905090810190601f16801561013f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015857600080fd5b61018d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610515565b604051808215151515815260200191505060405180910390f35b34156101b257600080fd5b6101ba61069c565b6040518082815260200191505060405180910390f35b34156101db57600080fd5b61022f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106a2565b604051808215151515815260200191505060405180910390f35b341561025457600080fd5b61025c610952565b6040518082815260200191505060405180910390f35b341561027d57600080fd5b6102936004808035906020019091905050610957565b604051808215151515815260200191505060405180910390f35b34156102b857600080fd5b6102e4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610abe565b6040518082815260200191505060405180910390f35b341561030557600080fd5b61030d610b07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561035a57600080fd5b610362610b2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a2578082015181840152602081019050610387565b50505050905090810190601f1680156103cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e857600080fd5b61041d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b66565b604051808215151515815260200191505060405180910390f35b341561044257600080fd5b61048d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d01565b6040518082815260200191505060405180910390f35b34156104ae57600080fd5b6104da600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d88565b005b6040805190810160405280600b81526020017f416c6c436f6465436f696e00000000000000000000000000000000000000000081525081565b6000808214806105a157506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156105ac57600080fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061077683600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e5f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061080b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e7d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108618382610e7d90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109b557600080fd5b610a0782600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e7d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a5f82600054610e7d90919063ffffffff16565b60008190555060003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f414c4c430000000000000000000000000000000000000000000000000000000081525081565b6000610bba82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e7d90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c4f82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e5f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610de457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610e5c5780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000808284019050838110151515610e7357fe5b8091505092915050565b6000828211151515610e8b57fe5b8183039050929150505600a165627a7a7230582059f3ea3df0b054e9ab711f37969684ba83fe38f255ffe2c8d850d951121c51100029", - "nonce": "1", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "3956606365", - "extraData": "0x566961425443", - "gasLimit": "5418523", - "hash": "0x6f37eb930a25da673ea1bb80fd9e32ddac19cdf7cd4bb2eac62cc13598624077", - "miner": "0xd049bfd667cb46aa3ef5df0da3e57db3be39e511", - "mixHash": "0x10971cde68c587c750c23b8589ae868ce82c2c646636b97e7d9856470c5297c7", - "nonce": "0x810f923ff4b450a1", - "number": "2295103", - "stateRoot": "0xff403612573d76dfdaf4fea2429b77dbe9764021ae0e38dc8ac79a3cf551179e", - "timestamp": "1513681246", - "totalDifficulty": "7162347056825919" - }, - "input": "0xf86d808504e3b292008307dfa69433056b5dcac09a9b4becad0e1dcf92c19bd0af76880e92596fd62900008029a0e5f27bb66431f7081bb7f1f242003056d7f3f35414c352cd3d1848b52716dac2a07d0be78980edb0bd2a0678fc53aa90ea9558ce346b0d947967216918ac74ccea", - "result": { - "calls": [ - { - "error": "invalid opcode 0xfe", - "from": "0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76", - "gas": "0x75fe3", - "gasUsed": "0x75fe3", - "input": "0xa9059cbb000000000000000000000000d4fcab9f0a6dc0493af47c864f6f17a8a5e2e82600000000000000000000000000000000000000000000000000000000000002f4", - "to": "0xe819f024b41358d2c08e3a868a5c5dd0566078d4", - "type": "CALL", - "value": "0x0" - } - ], - "error": "execution reverted", - "from": "0xd4fcab9f0a6dc0493af47c864f6f17a8a5e2e826", - "gas": "0x78d9e", - "gasUsed": "0x7c1c8", - "input": "0x", - "to": "0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76", - "type": "CALL", - "value": "0xe92596fd6290000", - "reverted":{"contract":"0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76"} - } -} diff --git a/node/cn/tracers/testdata/call_tracer_revert.json b/node/cn/tracers/testdata/call_tracer_revert.json deleted file mode 100644 index 89727a6e8..000000000 --- a/node/cn/tracers/testdata/call_tracer_revert.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "context": { - "difficulty": "3665057456", - "gasLimit": "5232723", - "miner": "0xf4d8e706cfb25c0decbbdd4d2e2cc10c66376a3f", - "number": "2294501", - "timestamp": "1513673601" - }, - "genesis": { - "alloc": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "balance": "0x2a3fc32bcc019283", - "code": "0x", - "nonce": "10", - "storage": {} - }, - "0xabbcd5b340c80b5f1c0545c04c987b87310296ae": { - "balance": "0x0", - "code": "0x606060405236156100755763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632d0335ab811461007a578063548db174146100ab5780637f649783146100fc578063b092145e1461014d578063c3f44c0a14610186578063c47cf5de14610203575b600080fd5b341561008557600080fd5b610099600160a060020a0360043516610270565b60405190815260200160405180910390f35b34156100b657600080fd5b6100fa600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061028f95505050505050565b005b341561010757600080fd5b6100fa600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061029e95505050505050565b005b341561015857600080fd5b610172600160a060020a03600435811690602435166102ad565b604051901515815260200160405180910390f35b341561019157600080fd5b6100fa6004803560ff1690602480359160443591606435600160a060020a0316919060a49060843590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a031692506102cd915050565b005b341561020e57600080fd5b61025460046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061056a95505050505050565b604051600160a060020a03909116815260200160405180910390f35b600160a060020a0381166000908152602081905260409020545b919050565b61029a816000610594565b5b50565b61029a816001610594565b5b50565b600160209081526000928352604080842090915290825290205460ff1681565b60008080600160a060020a038416158061030d5750600160a060020a038085166000908152600160209081526040808320339094168352929052205460ff165b151561031857600080fd5b6103218561056a565b600160a060020a038116600090815260208190526040808220549295507f19000000000000000000000000000000000000000000000000000000000000009230918891908b908b90517fff000000000000000000000000000000000000000000000000000000000000008089168252871660018201526c01000000000000000000000000600160a060020a038088168202600284015286811682026016840152602a8301869052841602604a820152605e810182805190602001908083835b6020831061040057805182525b601f1990920191602091820191016103e0565b6001836020036101000a0380198251168184511617909252505050919091019850604097505050505050505051809103902091506001828a8a8a6040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561049957600080fd5b5050602060405103519050600160a060020a03838116908216146104bc57600080fd5b600160a060020a0380841660009081526020819052604090819020805460010190559087169086905180828051906020019080838360005b8381101561050d5780820151818401525b6020016104f4565b50505050905090810190601f16801561053a5780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008661646e5a03f1915050151561055e57600080fd5b5b505050505050505050565b600060248251101561057e5750600061028a565b600160a060020a0360248301511690505b919050565b60005b825181101561060157600160a060020a033316600090815260016020526040812083918584815181106105c657fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b600101610597565b5b5050505600a165627a7a723058200027e8b695e9d2dea9f3629519022a69f3a1d23055ce86406e686ea54f31ee9c0029", - "nonce": "1", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "3672229776", - "extraData": "0x4554482e45544846414e532e4f52472d4641313738394444", - "gasLimit": "5227619", - "hash": "0xa07b3d6c6bf63f5f981016db9f2d1d93033833f2c17e8bf7209e85f1faf08076", - "miner": "0xbbf5029fd710d227630c8b7d338051b8e76d50b3", - "mixHash": "0x806e151ce2817be922e93e8d5921fa0f0d0fd213d6b2b9a3fa17458e74a163d0", - "nonce": "0xbc5d43adc2c30c7d", - "number": "2294500", - "stateRoot": "0xca645b335888352ef9d8b1ef083e9019648180b259026572e3139717270de97d", - "timestamp": "1513673552", - "totalDifficulty": "7160066586979149" - }, - "input": "0xf9018b0a8505d21dba00832dc6c094abbcd5b340c80b5f1c0545c04c987b87310296ae80b9012473b40a5c000000000000000000000000400de2e016bda6577407dfc379faba9899bc73ef0000000000000000000000002cc31912b2b0f3075a87b3640923d45a26cef3ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d79d8e6c7265636f76657279416464726573730000000000000000000000000000000000000000000000000000000000383e3ec32dc0f66d8fe60dbdc2f6815bdf73a988383e3ec32dc0f66d8fe60dbdc2f6815bdf73a9880000000000000000000000000000000000000000000000000000000000000000000000000000000029a0f73975fdfee7eefd964700992ff4c084980ab08c7f425f8e0786ba168505ec90a01f6aa24088453a5762e4281af7bf111be5b62cb64f58e6aaa85dc5137a50e6a4", - "result": { - "error": "execution reverted", - "from": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "gas": "0x2d55e8", - "gasUsed": "0x719b", - "input": "0x73b40a5c000000000000000000000000400de2e016bda6577407dfc379faba9899bc73ef0000000000000000000000002cc31912b2b0f3075a87b3640923d45a26cef3ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d79d8e6c7265636f76657279416464726573730000000000000000000000000000000000000000000000000000000000383e3ec32dc0f66d8fe60dbdc2f6815bdf73a988383e3ec32dc0f66d8fe60dbdc2f6815bdf73a98800000000000000000000000000000000000000000000000000000000000000000000000000000000", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ae", - "type": "CALL", - "value": "0x0", - "reverted": { - "contract": "0xabbcd5b340c80b5f1c0545c04c987b87310296ae" - } - } -} diff --git a/node/cn/tracers/testdata/call_tracer_revert_a.json b/node/cn/tracers/testdata/call_tracer_revert_a.json deleted file mode 100644 index 4929c75e2..000000000 --- a/node/cn/tracers/testdata/call_tracer_revert_a.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "context": { - "difficulty": "3665057456", - "gasLimit": "5232723", - "miner": "0xf4d8e706cfb25c0decbbdd4d2e2cc10c66376a3f", - "number": "2294501", - "timestamp": "1513673601" - }, - "genesis": { - "alloc": { - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x2a3fc32bcc019283", - "code": "0x", - "nonce": "10", - "storage": {} - }, - "0xabbcd5b340c80b5f1c0545c04c987b87310296aa": { - "balance": "0x0", - "code": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631654226c14610046575b600080fd5b34801561005257600080fd5b5061007160048036038101908080359060200190929190505050610073565b005b61008760018261016290919063ffffffff16565b905073abbcd5b340c80b5f1c0545c04c987b87310296ab73ffffffffffffffffffffffffffffffffffffffff16633051d238826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561010c57600080fd5b505af1158015610120573d6000803e3d6000fd5b505050506040513d602081101561013657600080fd5b8101908080519060200190929190505050905061015d60018261016290919063ffffffff16565b905050565b6000808383111515156101dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b828403905080915050929150505600a165627a7a723058208c97394963f323d8825a8bc0c70a0a5467046843610749809fe15c8124fe520c0029", - "nonce": "0", - "storage": {} - }, - "0xabbcd5b340c80b5f1c0545c04c987b87310296ab": { - "balance": "0x0", - "code": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633051d23814610051578063dabade8414610092575b600080fd5b34801561005d57600080fd5b5061007c600480360381019080803590602001909291905050506100d3565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100bd60048036038101908080359060200190929190505050610286565b6040518082815260200191505060405180910390f35b60006100e960018361043990919063ffffffff16565b915073abbcd5b340c80b5f1c0545c04c987b87310296ac73ffffffffffffffffffffffffffffffffffffffff166366eb1036836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561016e57600080fd5b505af1158015610182573d6000803e3d6000fd5b505050506040513d602081101561019857600080fd5b8101908080519060200190929190505050915073abbcd5b340c80b5f1c0545c04c987b87310296ac73ffffffffffffffffffffffffffffffffffffffff166323f4761a836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561022e57600080fd5b505af1158015610242573d6000803e3d6000fd5b505050506040513d602081101561025857600080fd5b8101908080519060200190929190505050915061027f60018361043990919063ffffffff16565b9050919050565b600061029c60018361043990919063ffffffff16565b915073abbcd5b340c80b5f1c0545c04c987b87310296ac73ffffffffffffffffffffffffffffffffffffffff166366eb1036836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b8101908080519060200190929190505050915073abbcd5b340c80b5f1c0545c04c987b87310296ac73ffffffffffffffffffffffffffffffffffffffff166323f4761a836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1580156103e157600080fd5b505af11580156103f5573d6000803e3d6000fd5b505050506040513d602081101561040b57600080fd5b8101908080519060200190929190505050915061043260018361043990919063ffffffff16565b9050919050565b6000808383111515156104b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b828403905080915050929150505600a165627a7a7230582004a5c317629ae31d1d42ba96ad53588507e0ab15fb060cd54da76cbd877177d90029", - "nonce": "0", - "storage": {} - }, - "0xaBBcD5b340c80B5F1C0545C04C987b87310296aC": { - "balance": "0x0", - "code": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323f4761a1461005157806366eb103614610092575b600080fd5b34801561005d57600080fd5b5061007c600480360381019080803590602001909291905050506100d3565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100bd600480360381019080803590602001909291905050506100f0565b6040518082815260200191505060405180910390f35b60006100e960018361010d90919063ffffffff16565b9050919050565b600061010660018361010d90919063ffffffff16565b9050919050565b600080838311151515610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b828403905080915050929150505600a165627a7a7230582072356e68a87056f2eb09580ef9ad9881be1a9f97674675db1212561f61036ff30029", - "nonce": "0", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "3672229776", - "extraData": "0x4554482e45544846414e532e4f52472d4641313738394444", - "gasLimit": "5227619", - "hash": "0xa07b3d6c6bf63f5f981016db9f2d1d93033833f2c17e8bf7209e85f1faf08076", - "miner": "0xbbf5029fd710d227630c8b7d338051b8e76d50b3", - "mixHash": "0x806e151ce2817be922e93e8d5921fa0f0d0fd213d6b2b9a3fa17458e74a163d0", - "nonce": "0xbc5d43adc2c30c7d", - "number": "2294500", - "stateRoot": "0xca645b335888352ef9d8b1ef083e9019648180b259026572e3139717270de97d", - "timestamp": "1513673552", - "totalDifficulty": "7160066586979149" - }, - "transaction": { - "nonce": "10", - "gasPrice": "0x20", - "gas": "0x9999999", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296aa", - "value": "0", - "input": "0x1654226c0000000000000000000000000000000000000000000000000000000000000005" - }, - "result": { - "type": "CALL", - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296aa", - "value": "0x0", - "gas": "0x99945c1", - "gasUsed": "0x6e15", - "input": "0x1654226c0000000000000000000000000000000000000000000000000000000000000005", - "output": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001e536166654d6174683a207375627472616374696f6e206f766572666c6f770000", - "error": "execution reverted", - "calls": [ - { - "type": "CALL", - "from": "0xabbcd5b340c80b5f1c0545c04c987b87310296aa", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ab", - "value": "0x0", - "gas": "0x972d994", - "gasUsed": "0x11dc", - "input": "0x3051d2380000000000000000000000000000000000000000000000000000000000000004", - "output": "0x0000000000000000000000000000000000000000000000000000000000000000", - "calls": [ - { - "type": "CALL", - "from": "0xabbcd5b340c80b5f1c0545c04c987b87310296ab", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ac", - "value": "0x0", - "gas": "0x94d0715", - "gasUsed": "0x18f", - "input": "0x66eb10360000000000000000000000000000000000000000000000000000000000000003", - "output": "0x0000000000000000000000000000000000000000000000000000000000000002" - }, - { - "type": "CALL", - "from": "0xabbcd5b340c80b5f1c0545c04c987b87310296ab", - "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ac", - "value": "0x0", - "gas": "0x94cff37", - "gasUsed": "0x179", - "input": "0x23f4761a0000000000000000000000000000000000000000000000000000000000000002", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001" - } - ] - } - ], - "reverted": { - "contract": "0xabbcd5b340c80b5f1c0545c04c987b87310296aa", - "message": "SafeMath: subtraction overflow" - } - } -} diff --git a/node/cn/tracers/testdata/call_tracer_revert_malformed_big.json b/node/cn/tracers/testdata/call_tracer_revert_malformed_big.json deleted file mode 100644 index 216ea5fd7..000000000 --- a/node/cn/tracers/testdata/call_tracer_revert_malformed_big.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "context": { - "blockscore": "0x1", - "number": "17872", - "timestamp": "1659524748" - }, - "genesis": { - "alloc": { - "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d": { - "balance": "0x446c3b15f9926687d2c40534fdb5c6ea83e9b1c000", - "code": "0x", - "nonce": "10", - "storage": {} - }, - "0x7baeb3d4d8709601ee78f9ad78f77351318c6907": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80634d536fe314602d575b600080fd5b60336035565b005b6308c379a0610100527f1100000000000000000000000000000000000000000000000000000000000020610120527f1100000000000000000000000000000000000000000000000000000000000008610140527f616161616161616100000000000000000000000000000000000000000000000061016052606461011cfdfea26469706673582212200e4d9636a4bebcf7335c8bf8bdc979ffb059496dd975f10e05aa6efc8e9a42d464736f6c63430008070033", - "nonce": "1", - "storage": {} - } - }, - "baseFeePerGas": "0x5d21dba00", - "blockscore": "0x1", - "config": { - "chainId": 1000, - "deriveShaImpl": 0, - "ethTxTypeCompatibleBlock": 0, - "governance": { - "governanceMode": "none", - "governingNode": "0x0000000000000000000000000000000000000000", - "kip71": { - "basefeedenominator": 20, - "gastarget": 30000000, - "lowerboundbasefee": 25000000000, - "maxblockgasusedforbasefee": 60000000, - "upperboundbasefee": 750000000000 - }, - "reward": { - "deferredTxFee": false, - "minimumStake": 2000000, - "mintingAmount": 0, - "proposerUpdateInterval": 3600, - "ratio": "100/0/0", - "stakingUpdateInterval": 86400, - "useGiniCoeff": false - } - }, - "istanbul": { - "epoch": 604800, - "policy": 0, - "sub": 21 - }, - "istanbulCompatibleBlock": 0, - "londonCompatibleBlock": 0, - "magmaCompatibleBlock": 0, - "unitPrice": 0 - }, - "extraData": "0xd683010900846b6c617986676f312e3138856c696e7578000000000000000000f89ed5944cefb5df9a128512c8c5cdfab717ff1dcd10dc7db84101d33a1a018e08b8908d807ae81997ad9a20082e7b01dee853f0e2ee22bbc8833165826e2e9710bd64b0cfa4d5badca781566a25a3a7f1eb5e424a868f5eebf101f843b841d6caa8b166825dd5c4fbf5d339128a8068ee4ebf984633e6ea386d8d8f1ef51c228009eafc66dcd1fcec06cc2749d94db8bc7fd22cbdfc0d58931773df7fde6100", - "hash": "0x8da0e199eead32c9b68a1226afb5ff772c5f8271b4a026ac9b820c41302c3d2f", - "number": "17871", - "reward": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "stateRoot": "0x621b06577483a4e206528ca751aa1c3ccf73aeced4635ee2992951ea2430c497", - "timestamp": "1659524747", - "timestampFoS": 3, - "totalBlockScore": "0x45d0" - }, - "input": "0xf86b0a850ba43b7400832dc6c0947baeb3d4d8709601ee78f9ad78f77351318c690780844d536fe38207f3a0db346b193c8dee530a5c93b7fa722055b71ab109478d5747f760d168637f9541a014881c7cc9a18d875bcc54e68bbd2709ea8d2f3da2c5ec1610f0bf4136030165", - "result": { - "error": "execution reverted", - "from": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "gas": "0x2d7328", - "gasUsed": "0x544e", - "input": "0x4d536fe3", - "output": "0x08c379a0110000000000000000000000000000000000000000000000000000000000002011000000000000000000000000000000000000000000000000000000000000086161616161616161000000000000000000000000000000000000000000000000", - "reverted": { - "contract": "0x7baeb3d4d8709601ee78f9ad78f77351318c6907", - "message": "" - }, - "to": "0x7baeb3d4d8709601ee78f9ad78f77351318c6907", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_revert_malformed_small.json b/node/cn/tracers/testdata/call_tracer_revert_malformed_small.json deleted file mode 100644 index 2a11bc5a2..000000000 --- a/node/cn/tracers/testdata/call_tracer_revert_malformed_small.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "context": { - "blockscore": "0x1", - "number": "3919", - "timestamp": "1659432055" - }, - "genesis": { - "alloc": { - "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d": { - "balance": "0x446c3b15f9926687d2c40534fdb5f0209301aeb500", - "code": "0x", - "nonce": "15", - "storage": {} - }, - "0x575d9d30a2745db7d1bdb94ea26c5d034d422457": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80634d536fe314602d575b600080fd5b60336035565b005b6308c379a06101005261cafe6101205262c0ffee610140527f616161616161616100000000000000000000000000000000000000000000000061016052606461011cfdfea26469706673582212200839afa9adcccdea7b0d1c6033070f79924ada6ae141599d29665eb6ab4a349264736f6c634300080f0033", - "nonce": "1", - "storage": {} - } - }, - "baseFeePerGas": "0x5d21dba00", - "blockscore": "0x1", - "config": { - "chainId": 1000, - "deriveShaImpl": 0, - "ethTxTypeCompatibleBlock": 0, - "governance": { - "governanceMode": "none", - "governingNode": "0x0000000000000000000000000000000000000000", - "kip71": { - "basefeedenominator": 20, - "gastarget": 30000000, - "lowerboundbasefee": 25000000000, - "maxblockgasusedforbasefee": 60000000, - "upperboundbasefee": 750000000000 - }, - "reward": { - "deferredTxFee": false, - "minimumStake": 2000000, - "mintingAmount": 0, - "proposerUpdateInterval": 3600, - "ratio": "100/0/0", - "stakingUpdateInterval": 86400, - "useGiniCoeff": false - } - }, - "istanbul": { - "epoch": 604800, - "policy": 0, - "sub": 21 - }, - "istanbulCompatibleBlock": 0, - "londonCompatibleBlock": 0, - "magmaCompatibleBlock": 0, - "unitPrice": 0 - }, - "extraData": "0xd683010900846b6c617986676f312e3138856c696e7578000000000000000000f89ed5944cefb5df9a128512c8c5cdfab717ff1dcd10dc7db841c9421241e4176bc0bf1d4c4aa9645d84ae34151a9f585202f391520b0cec65587535f1aa6750a0eb6a4c613ff6449ab5ea59f64a3448f9bcf8045d67340fe8fc00f843b841da267988889585d43aebb3d33bea1042c0d2fe71ee92cda172df66f1778280e636ebb6c6a339696f4a74cd6f005c324c80c25326625db6a8cbbbcc2dfa87dc4b00", - "hash": "0xbcb8a66c04f9f7b2121117576b40a2d1fed3a85d651ebe10a67160f5929e2e4d", - "number": "3918", - "reward": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "stateRoot": "0x3ce950836160025f925cdd05844dbb3e10d022201d75204694ee3cb5733b23d2", - "timestamp": "1659432054", - "timestampFoS": 29, - "totalBlockScore": "0xf4f" - }, - "input": "0xf86b0f850ba43b74008411e1a30094575d9d30a2745db7d1bdb94ea26c5d034d42245780844d536fe38207f3a092b373c4bf49716f0876280ffc708397f6d49fd870edb03303d30372d17746b19f2a90eb36e3f37a3bf6449eacfc9375e97eb5e89dbe2b1d5eedda2286f8b2bd", - "result": { - "error": "execution reverted", - "from": "0x4cefb5df9a128512c8c5cdfab717ff1dcd10dc7d", - "gas": "0x11e14f68", - "gasUsed": "0x544e", - "input": "0x4d536fe3", - "output": "0x08c379a0000000000000000000000000000000000000000000000000000000000000cafe0000000000000000000000000000000000000000000000000000000000c0ffee6161616161616161000000000000000000000000000000000000000000000000", - "reverted": { - "contract": "0x575d9d30a2745db7d1bdb94ea26c5d034d422457", - "message": "" - }, - "to": "0x575d9d30a2745db7d1bdb94ea26c5d034d422457", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_selfdestruct.json b/node/cn/tracers/testdata/call_tracer_selfdestruct.json deleted file mode 100644 index b0ccec94e..000000000 --- a/node/cn/tracers/testdata/call_tracer_selfdestruct.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "context": { - "blockscore": "0x1", - "number": "36932279", - "timestamp": "1598487708" - }, - "genesis": { - "alloc": { - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x43b64ca0d7b5b800", - "code": "0x", - "nonce": "41", - "storage": {} - }, - "0xf0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e3": { - "balance": "0x12345", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80633f5a0bdd14602d575b600080fd5b606c60048036036020811015604157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050606e565b005b8073ffffffffffffffffffffffffffffffffffffffff16fffea165627a7a723058205a07115694cf6d085e273dfb445dc694641455dff6394df72bc6963b78c5319f0029", - "nonce": "1", - "storage": {} - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841ef53a6ac4c273be54117135ac90c03ad71b78004a949057ac1720e13a543e8b508bef239c0946ef0570c69986bf6587d5eebbfd46c97d12b60726ed66f42d86f00f8c9b8414becd85662fbb6654d47af972411c3d0dc888d3dad6c8064b6792e5656e4d07473a7c6c65fb0c96077e030d26281d361f0bf7625e8ca13823d442b84a395177400b841874f5fc8295d2cab492ba2bd568277a668d02233baed8d3aeeb1947f0de603323a49dca45aa3f8bed450cef7f6fcbdeff15a59b7e059e4ced2eb7a3180e23b5501b841cdb9d1c5dbb22b3ad2e5c94a9fc68bfa18b2cc2af7f3776257451565395bbd911ade9c18dcaa721b63a2d9a85ed59426ec3b856eaeb158006dd3313bad679b2500", - "hash": "0x885e83dd7b02665e581be0d999e0dc6a83aa7a2f0b1ba8867239bd6fd3a211be", - "number": "36932278", - "reward": "0x82829a60c6eac4e3e9d6ed00891c69e88537fd4d", - "stateRoot": "0x7b1285a002606301be8e0500f713ae652cea4d0fff2ed2bd6d5a1d0d03e72484", - "timestamp": "1598487707", - "timestampFoS": 1, - "totalBlockScore": "0x2338ab7", - "voteData": "0x" - }, - "input": "0xf88a298505d21dba00826cf294f0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e380a43f5a0bdd000000000000000000000000f0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e38207f5a00520c9f3330e786f5d7d8667e21cd21c691bb210ddda74b3ad4b564de0970ac2a0312beb39ff57f90c760f22210f24b70884b041686ce1f2308072a27e95395f3d", - "result": { - "calls": [ - { - "type": "SELFDESTRUCT", - "from": "0xf0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e3", - "to": "0xf0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e3", - "value": "0x12345" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x145a", - "gasUsed": "0x3679", - "input": "0x3f5a0bdd000000000000000000000000f0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e3", - "output": "0x", - "to": "0xf0b1b2a91af3b0a0a5389ea80bffdc42cf86b7e3", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_simple.json b/node/cn/tracers/testdata/call_tracer_simple.json deleted file mode 100644 index 643ca6ddd..000000000 --- a/node/cn/tracers/testdata/call_tracer_simple.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "context": { - "difficulty": "3502894804", - "gasLimit": "4722976", - "miner": "0x1585936b53834b021f68cc13eeefdec2efc8e724", - "number": "2289806", - "timestamp": "1513601314" - }, - "genesis": { - "alloc": { - "0x0024f658a46fbb89d8ac105e98d7ac7cbbaf27c5": { - "balance": "0x0", - "code": "0x", - "nonce": "22", - "storage": {} - }, - "0x3b873a919aa0512d5a0f09e6dcceaa4a6727fafe": { - "balance": "0x4d87094125a369d9bd5", - "code": "0x606060405236156100935763ffffffff60e060020a60003504166311ee8382811461009c57806313af4035146100be5780631f5e8f4c146100ee57806324daddc5146101125780634921a91a1461013b57806363e4bff414610157578063764978f91461017f578063893d20e8146101a1578063ba40aaa1146101cd578063cebc9a82146101f4578063e177246e14610216575b61009a5b5b565b005b34156100a457fe5b6100ac61023d565b60408051918252519081900360200190f35b34156100c657fe5b6100da600160a060020a0360043516610244565b604080519115158252519081900360200190f35b34156100f657fe5b6100da610307565b604080519115158252519081900360200190f35b341561011a57fe5b6100da6004351515610318565b604080519115158252519081900360200190f35b6100da6103d6565b604080519115158252519081900360200190f35b6100da600160a060020a0360043516610420565b604080519115158252519081900360200190f35b341561018757fe5b6100ac61046c565b60408051918252519081900360200190f35b34156101a957fe5b6101b1610473565b60408051600160a060020a039092168252519081900360200190f35b34156101d557fe5b6100da600435610483565b604080519115158252519081900360200190f35b34156101fc57fe5b6100ac61050d565b60408051918252519081900360200190f35b341561021e57fe5b6100da600435610514565b604080519115158252519081900360200190f35b6003545b90565b60006000610250610473565b600160a060020a031633600160a060020a03161415156102705760006000fd5b600160a060020a03831615156102865760006000fd5b50600054600160a060020a0390811690831681146102fb57604051600160a060020a0380851691908316907ffcf23a92150d56e85e3a3d33b357493246e55783095eb6a733eb8439ffc752c890600090a360008054600160a060020a031916600160a060020a03851617905560019150610300565b600091505b5b50919050565b60005460a060020a900460ff165b90565b60006000610324610473565b600160a060020a031633600160a060020a03161415156103445760006000fd5b5060005460a060020a900460ff16801515831515146102fb576000546040805160a060020a90920460ff1615158252841515602083015280517fe6cd46a119083b86efc6884b970bfa30c1708f53ba57b86716f15b2f4551a9539281900390910190a16000805460a060020a60ff02191660a060020a8515150217905560019150610300565b600091505b5b50919050565b60006103e0610307565b801561040557506103ef610473565b600160a060020a031633600160a060020a031614155b156104105760006000fd5b610419336105a0565b90505b5b90565b600061042a610307565b801561044f5750610439610473565b600160a060020a031633600160a060020a031614155b1561045a5760006000fd5b610463826105a0565b90505b5b919050565b6001545b90565b600054600160a060020a03165b90565b6000600061048f610473565b600160a060020a031633600160a060020a03161415156104af5760006000fd5b506001548281146102fb57604080518281526020810185905281517f79a3746dde45672c9e8ab3644b8bb9c399a103da2dc94b56ba09777330a83509929181900390910190a160018381559150610300565b600091505b5b50919050565b6002545b90565b60006000610520610473565b600160a060020a031633600160a060020a03161415156105405760006000fd5b506002548281146102fb57604080518281526020810185905281517ff6991a728965fedd6e927fdf16bdad42d8995970b4b31b8a2bf88767516e2494929181900390910190a1600283905560019150610300565b600091505b5b50919050565b60006000426105ad61023d565b116102fb576105c46105bd61050d565b4201610652565b6105cc61046c565b604051909150600160a060020a038416908290600081818185876187965a03f1925050501561063d57604080518281529051600160a060020a038516917f9bca65ce52fdef8a470977b51f247a2295123a4807dfa9e502edf0d30722da3b919081900360200190a260019150610300565b6102fb42610652565b5b600091505b50919050565b60038190555b505600a165627a7a72305820f3c973c8b7ed1f62000b6701bd5b708469e19d0f1d73fde378a56c07fd0b19090029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000001b436ba50d378d4bbc8660d312a13df6af6e89dfb", - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x000000000000000000000000000000000000000000000000000000000000003c", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000000000000000000000000000000000005a37b834" - } - }, - "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb": { - "balance": "0x1780d77678137ac1b775", - "code": "0x", - "nonce": "29072", - "storage": {} - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "3509749784", - "extraData": "0x4554482e45544846414e532e4f52472d4641313738394444", - "gasLimit": "4727564", - "hash": "0x609948ac3bd3c00b7736b933248891d6c901ee28f066241bddb28f4e00a9f440", - "miner": "0xbbf5029fd710d227630c8b7d338051b8e76d50b3", - "mixHash": "0xb131e4507c93c7377de00e7c271bf409ec7492767142ff0f45c882f8068c2ada", - "nonce": "0x4eb12e19c16d43da", - "number": "2289805", - "stateRoot": "0xc7f10f352bff82fac3c2999d3085093d12652e19c7fd32591de49dc5d91b4f1f", - "timestamp": "1513601261", - "totalDifficulty": "7143276353481064" - }, - "input": "0xf88b8271908506fc23ac0083015f90943b873a919aa0512d5a0f09e6dcceaa4a6727fafe80a463e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c52aa0bdce0b59e8761854e857fe64015f06dd08a4fbb7624f6094893a79a72e6ad6bea01d9dde033cff7bb235a3163f348a6d7ab8d6b52bc0963a95b91612e40ca766a4", - "result": { - "calls": [ - { - "from": "0x3b873a919aa0512d5a0f09e6dcceaa4a6727fafe", - "input": "0x", - "to": "0x0024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", - "type": "CALL", - "value": "0x6f05b59d3b20000" - } - ], - "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", - "gasUsed": "0x9751", - "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", - "output": "0x0000000000000000000000000000000000000000000000000000000000000001", - "to": "0x3b873a919aa0512d5a0f09e6dcceaa4a6727fafe", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_staticcall.json b/node/cn/tracers/testdata/call_tracer_staticcall.json deleted file mode 100644 index 7c9455cd3..000000000 --- a/node/cn/tracers/testdata/call_tracer_staticcall.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_comment": "This test json file is a contract creation with STATICCALL opcode from an internal transaction. The associated code is under testdata/contracts/StaticCaller.sol.", - "context": { - "blockscore": "0x1", - "number": "36882605", - "timestamp": "1598438034" - }, - "genesis": { - "alloc": { - "0x71562b71999873db5b286df957af199ec94617f7": { - "balance": "0x43c0a3594c788000", - "code": "0x", - "nonce": "39", - "storage": {} - }, - "0x920fd5070602feaea2e251e9e7238b6c376bcae5": { - "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c605f76c14602d575b600080fd5b60336035565b005b56fea165627a7a72305820fa73ba4826b9cad424daca3fe86750de2910b6abc0f009a288f9df6be8256e080029", - "nonce": "1", - "storage": {} - }, - "0xbadc777c579b497ede07fa6ff93bdf4e31793f24": { - "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80633917b3df14610030575b600080fd5b61003861003a565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527fc605f76c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106101285780518252602082019150602081019050602083039250610105565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610188576040519150601f19603f3d011682016040523d82523d6000602084013e61018d565b606091505b50505056fea165627a7a723058200a8037f3dac67bd55cafa4a492146647a595bc7ebdb2dbdebdf82c1f7a6f44af0029", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000920fd5070602feaea2e251e9e7238b6c376bcae5" - } - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1001, - "deriveShaImpl": 2, - "governance": { - "governanceMode": "single", - "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", - "reward": { - "deferredTxFee": true, - "minimumStake": 5000000, - "mintingAmount": 9600000000000000000, - "proposerUpdateInterval": 3600, - "ratio": "34/54/12", - "stakingUpdateInterval": 86400, - "useGiniCoeff": true - } - }, - "istanbul": { - "epoch": 604800, - "policy": 2, - "sub": 22 - }, - "unitPrice": 25000000000 - }, - "extraData": "0xd883010501846b6c617988676f312e31342e36856c696e757800000000000000f90164f85494571e53df607be97431a5bbefca1dffe5aef56f4d945cb1a7dccbd0dc446e3640898ede8820368554c89499fb17d324fa0e07f23b49d09028ac0919414db694b74ff9dea397fe9e231df545eb53fe2adf776cb2b841d62cf99042d6215972f8735fadb5e8116d9ac7f06333409fab02ba9de447bc2369956026d310b36a166dcd416f0fd1a0a108db9f5e455ec98fa696944659f12d00f8c9b8412de6ab11f21b5a6078c09340ddfb002354a60d0295c166d86b5010f3f290905c6e392adab384d68210ce06451852aa9af6c630f029e9374746c658be0505380b01b841281cd24bd66415cdcab3dfdd3c6e79c9a7c65832ce8e2c707428e8022e3650dd78bc1af22bc8161049da84971079a989108830559875817d9461c2d49f78f69a00b84115d9adc655081fd3917c67325dee61550f00c223ed62bb555859064f8ebc26e53ba46ba1d160e24e6228cba180d28720481d2b3fb7e82ab3a4b56d5568deaa4400", - "hash": "0x7b63489bb01ccc28edb7722480be643917ce137e7d40df530c7b303cff724f62", - "number": "36882604", - "reward": "0x82829a60c6eac4e3e9d6ed00891c69e88537fd4d", - "stateRoot": "0xcc5386ca6ccd6eff636ad527025db288e5df1e16838451186d612c82deeda235", - "timestamp": "1598438033", - "timestampFoS": 1, - "totalBlockScore": "0x232c8ad", - "voteData": "0x" - }, - "input": "0xf86a278505d21dba0082595294badc777c579b497ede07fa6ff93bdf4e31793f2480843917b3df8207f6a08e2c2259134c7390e8272351bfb728faed891ecb7b35c5bdc56a9d4a39695424a0567027ec52e71dd720123eca07dd3d699578aad90669bc3ad932087c9fa4e4bf", - "result": { - "calls": [ - { - "from": "0xbadc777c579b497ede07fa6ff93bdf4e31793f24", - "gas": "0xb3", - "gasUsed": "0x7a", - "input": "0xc605f76c", - "output": "0x", - "to": "0x920fd5070602feaea2e251e9e7238b6c376bcae5", - "type": "STATICCALL" - } - ], - "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x63a", - "gasUsed": "0x5952", - "input": "0x3917b3df", - "output": "0x", - "to": "0xbadc777c579b497ede07fa6ff93bdf4e31793f24", - "type": "CALL", - "value": "0x0" - } -} \ No newline at end of file diff --git a/node/cn/tracers/testdata/call_tracer_throw.json b/node/cn/tracers/testdata/call_tracer_throw.json deleted file mode 100644 index 938030902..000000000 --- a/node/cn/tracers/testdata/call_tracer_throw.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "context": { - "difficulty": "117009631", - "gasLimit": "4712388", - "miner": "0x294e5d6c39a36ce38af1dca70c1060f78dee8070", - "number": "25009", - "timestamp": "1479891666" - }, - "genesis": { - "alloc": { - "0x70c9217d814985faef62b124420f8dfbddd96433": { - "balance": "0x4ecd70668f5d854a", - "code": "0x", - "nonce": "1638", - "storage": {} - }, - "0xc212e03b9e060e36facad5fd8f4435412ca22e6b": { - "balance": "0x0", - "code": "0x606060405236156101745760e060020a600035046302d05d3f811461017c57806304a7fdbc1461018e5780630e90f957146101fb5780630fb5a6b41461021257806314baa1b61461021b57806317fc45e21461023a5780632b096926146102435780632e94420f1461025b578063325a19f11461026457806336da44681461026d5780633f81a2c01461027f5780633fc306821461029757806345ecd3d7146102d45780634665096d146102dd5780634e71d92d146102e657806351a34eb8146103085780636111bb951461032d5780636f265b93146103445780637e9014e11461034d57806390ba009114610360578063927df5e014610393578063a7f437791461046c578063ad8f50081461046e578063bc6d909414610477578063bdec3ad114610557578063c19d93fb1461059a578063c9503fe2146105ad578063e0a73a93146105b6578063ea71b02d146105bf578063ea8a1af0146105d1578063ee4a96f9146105f3578063f1ff78a01461065c575b61046c610002565b610665600054600160a060020a031681565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600554600090600160a060020a0390811633909116146106a857610002565b61068260015460a060020a900460ff166000145b90565b61069660085481565b61046c600435600154600160a060020a03166000141561072157610002565b610696600d5481565b610696600435600f8160068110156100025750015481565b61069660045481565b61069660035481565b610665600554600160a060020a031681565b61069660043560158160068110156100025750015481565b6106966004355b600b54600f5460009160028202808203928083039290810191018386101561078357601054840186900394505b50505050919050565b61069660025481565b61069660095481565b61046c600554600090600160a060020a03908116339091161461085857610002565b61046c600435600554600090600160a060020a03908116339091161461092e57610002565b6106826001805460a060020a900460ff161461020f565b610696600b5481565b61068260075460a060020a900460ff1681565b6106966004355b600b54601554600091600282028082039280830392908101910183861015610a6c5760165494506102cb565b61046c6004356024356044356040805160015460e360020a631c2d8fb302825260b260020a691858d8dbdd5b9d18dd1b02600483015291516000928392600160a060020a03919091169163e16c7d9891602481810192602092909190829003018187876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610b4657610002565b005b610696600a5481565b61046c60006000600060006000600160009054906101000a9004600160a060020a0316600160a060020a031663e16c7d986040518160e060020a028152600401808060b260020a691858d8dbdd5b9d18dd1b0281526020015060200190506020604051808303816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663c4b0c96a336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050610f1757610002565b61046c5b60015b60058160ff16101561071e57600f6001820160ff166006811015610002578101549060ff83166006811015610002570154101561129057610002565b61069660015460a060020a900460ff1681565b61069660065481565b610696600c5481565b610665600754600160a060020a031681565b61046c600554600090600160a060020a0390811633909116146112c857610002565b6040805160c081810190925261046c9160049160c4918390600690839083908082843760408051808301909152929750909561018495509193509091908390839080828437509095505050505050600154600090600160a060020a03168114156113fb57610002565b610696600e5481565b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60408051918252519081900360200190f35b5060005b60068160ff16101561070857828160ff166006811015610002576020020151600f60ff831660068110156100025701558160ff82166006811015610002576020020151601560ff831660068110156100025701556001016106ac565b61071061055b565b505050565b600e8054820190555b50565b6040805160015460e060020a6313bc6d4b02825233600160a060020a03908116600484015292519216916313bc6d4b9160248181019260209290919082900301816000876161da5a03f115610002575050604051511515905061071557610002565b83861015801561079257508286105b156107b457600f546010546011548689039082030291909104900394506102cb565b8286101580156107c55750600b5486105b156107e757600f546011546012548589039082030291909104900394506102cb565b600b5486108015906107f857508186105b1561081d57600b54600f546012546013549289039281039290920204900394506102cb565b81861015801561082c57508086105b1561084e57600f546013546014548489039082030291909104900394506102cb565b60145494506102cb565b60015460a060020a900460ff1660001461087157610002565b600254600a01431161088257610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750505060405180519060200150905080600160a060020a031663771d50e16040518160e060020a0281526004018090506000604051808303816000876161da5a03f1156100025750505050565b60015460a060020a900460ff1660001461094757610002565b600254600a01431161095857610002565b6040805160015460e360020a631c2d8fb302825260a860020a6a636f6e74726163746170690260048301529151600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180517f51a34eb8000000000000000000000000000000000000000000000000000000008252600482018690529151919350600160a060020a03841692506351a34eb8916024808301926000929190829003018183876161da5a03f11561000257505050600b8290554360025560408051838152905130600160a060020a0316917fa609f6bd4ad0b4f419ddad4ac9f0d02c2b9295c5e6891469055cf73c2b568fff919081900360200190a25050565b838610158015610a7b57508286105b15610a9d576015546016546017548689039082900302919091040194506102cb565b828610158015610aae5750600b5486105b15610ad0576015546017546018548589039082900302919091040194506102cb565b600b548610801590610ae157508186105b15610b0657600b546015546018546019549289039281900392909202040194506102cb565b818610158015610b1557508086105b15610b3757601554601954601a548489039082900302919091040194506102cb565b601a54860181900394506102cb565b60015460a060020a900460ff16600014610b5f57610002565b6001805460a060020a60ff02191660a060020a17908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919450600160a060020a038516925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604080518051600a556005547ffebf661200000000000000000000000000000000000000000000000000000000825233600160a060020a03908116600484015216602482015260448101879052905163febf661291606480820192600092909190829003018183876161da5a03f115610002575050508215610cc7576007805473ffffffffffffffffffffffffffffffffffffffff191633179055610dbb565b6040805160055460065460e060020a63599efa6b028352600160a060020a039182166004840152602483015291519184169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050604080516006547f56ccb6f000000000000000000000000000000000000000000000000000000000825233600160a060020a03166004830152602482015290516356ccb6f091604480820192600092909190829003018183876161da5a03f115610002575050600580546007805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a038416179091551633179055505b6007805460a060020a60ff02191660a060020a87810291909117918290556008544301600955900460ff1615610df757600a54610e039061029e565b600a54610e0b90610367565b600c55610e0f565b600c555b600c54670de0b6b3a7640000850204600d55600754600554604080517f759297bb000000000000000000000000000000000000000000000000000000008152600160a060020a039384166004820152918316602483015260448201879052519184169163759297bb91606481810192600092909190829003018183876161da5a03f11561000257505060408051600754600a54600d54600554600c5460a060020a850460ff161515865260208601929092528486019290925260608401529251600160a060020a0391821694509281169230909116917f3b3d1986083d191be01d28623dc19604728e29ae28bdb9ba52757fdee1a18de2919081900360800190a45050505050565b600954431015610f2657610002565b6001805460a060020a900460ff1614610f3e57610002565b6001805460a060020a60ff0219167402000000000000000000000000000000000000000017908190556040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f1156100025750506040805180516004805460e260020a633e4baddd028452908301529151919750600160a060020a038816925063f92eb77491602482810192602092919082900301816000876161da5a03f115610002575050604051516007549095506000945060a060020a900460ff1615905061105c57600a5484111561105757600a54600d54670de0b6b3a7640000918603020492505b61107e565b600a5484101561107e57600a54600d54670de0b6b3a764000091869003020492505b60065483111561108e5760065492505b6006548390039150600083111561111857604080516005546007547f5928d37f000000000000000000000000000000000000000000000000000000008352600160a060020a0391821660048401528116602483015260448201869052915191871691635928d37f91606481810192600092909190829003018183876161da5a03f115610002575050505b600082111561117a576040805160055460e060020a63599efa6b028252600160a060020a0390811660048301526024820185905291519187169163599efa6b91604481810192600092909190829003018183876161da5a03f115610002575050505b6040805185815260208101849052808201859052905130600160a060020a0316917f89e690b1d5aaae14f3e85f108dc92d9ab3763a58d45aed8b59daedbbae8fe794919081900360600190a260008311156112285784600160a060020a0316634cc927d785336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f11561000257505050611282565b84600160a060020a0316634cc927d7600a60005054336040518360e060020a0281526004018083815260200182600160a060020a03168152602001925050506000604051808303816000876161da5a03f115610002575050505b600054600160a060020a0316ff5b60156001820160ff166006811015610002578101549060ff8316600681101561000257015411156112c057610002565b60010161055e565b60015460a060020a900460ff166000146112e157610002565b600254600a0143116112f257610002565b6001546040805160e360020a631c2d8fb302815260a860020a6a636f6e74726163746170690260048201529051600160a060020a03929092169163e16c7d989160248181019260209290919082900301816000876161da5a03f11561000257505060408051805160055460065460e060020a63599efa6b028452600160a060020a03918216600485015260248401529251909450918416925063599efa6b916044808301926000929190829003018183876161da5a03f1156100025750505080600160a060020a0316632b68bb2d6040518160e060020a0281526004018090506000604051808303816000876161da5a03f115610002575050600054600160a060020a03169050ff5b6001546040805160e060020a6313bc6d4b02815233600160a060020a039081166004830152915191909216916313bc6d4b91602480830192602092919082900301816000876161da5a03f11561000257505060405151151590506106a85761000256", - "nonce": "1", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000002cccf5e0538493c235d1c5ef6580f77d99e91396", - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000000061a9", - "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000070c9217d814985faef62b124420f8dfbddd96433" - } - } - }, - "config": { - "byzantiumBlock": 1700000, - "chainId": 3, - "daoForkSupport": true, - "eip150Block": 0, - "eip150Hash": "0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d", - "eip155Block": 10, - "eip158Block": 10, - "gxhash": {}, - "homesteadBlock": 0 - }, - "difficulty": "117066792", - "extraData": "0xd783010502846765746887676f312e372e33856c696e7578", - "gasLimit": "4712388", - "hash": "0xe23e8d4562a1045b70cbc99fefb20c101a8f0fc8559a80d65fea8896e2f1d46e", - "miner": "0x71842f946b98800fe6feb49f0ae4e253259031c9", - "mixHash": "0x0aada9d6e93dd4db0d09c0488dc0a048fca2ccdc1f3fc7b83ba2a8d393a3a4ff", - "nonce": "0x70849d5838dee2e9", - "number": "25008", - "stateRoot": "0x1e01d2161794768c5b917069e73d86e8dca80cd7f3168c0597de420ab93a3b7b", - "timestamp": "1479891641", - "totalDifficulty": "1896347038589" - }, - "input": "0xf88b8206668504a817c8008303d09094c212e03b9e060e36facad5fd8f4435412ca22e6b80a451a34eb8000000000000000000000000000000000000000000000027fad02094277c000029a0692a3b4e7b2842f8dd7832e712c21e09f451f416c8976d5b8d02e8c0c2b4bea9a07645e90fc421b63dd755767fd93d3c03b4ec0c4d8fafa059558d08cf11d59750", - "result": { - "error": "evm: invalid jump destination", - "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", - "gasUsed": "0x3d090", - "input": "0x51a34eb8000000000000000000000000000000000000000000000027fad02094277c0000", - "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", - "type": "CALL", - "value": "0x0" - } -} diff --git a/node/cn/tracers/testdata/call_tracer_to_eoa.json b/node/cn/tracers/testdata/call_tracer_to_eoa.json deleted file mode 100644 index 65a3f7ee6..000000000 --- a/node/cn/tracers/testdata/call_tracer_to_eoa.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "This test json file is a legacy transaction that sends KLAY to an EOA", - "context": { - "blockscore": "0x1", - "number": "37784", - "timestamp": "1693799477" - }, - "genesis": { - "alloc": { - "0x337160455646d3b876cc3768e701a41bbc21ed3a": { - "balance": "0xd3c21bcecceda1000000", - "nonce": "0x79" - }, - "0x3693da93b9d5e63cb4804b8813c8214a76724485": { - "balance": "0xd3c21bcecceda1000000" - } - }, - "blockscore": "0x1", - "config": { - "chainId": 1972, - "unitPrice": 25000000000 - }, - "extraData": "0xd983010b00846b6c617988676f312e32312e308664617277696e000000000000f89ed594337160455646d3b876cc3768e701a41bbc21ed3ab8413a2a7a3b46e3633afae57003432adf7966a8277b54b8851b4ff501175ff27dd93cf3b4b8478a442678418947c31fdd079274a1e96cd2ba6410b5064135f7943b00f843b841b5848f3cb08aed77c40e21ad417950ea105e3f3eb41e355b9257894bd7e196ea7c6d8d6716d4c08b16bfa38ebae5274e595c3c12fa431a7aeaf93e2b5575976900", - "hash": "0x01a1804c44ec46bf3cfff1ec875bfbd87cb7c7c4da112adfe078da7b2473f502", - "number": "37783", - "reward": "0x337160455646d3b876cc3768e701a41bbc21ed3a", - "stateRoot": "0x4db9703708afebbd4722761bcf8728bfcdf6ce6560c584b6bcc213549585b954", - "timestamp": "1693448289", - "timestampFoS": 1, - "totalBlockScore": "0x9398", - "voteData": "0x" - }, - "input": "0xf86f79850ba43b74008261a894072d51ab13cee591d38f527c589c36669c0a6854893635c9adc5dea0000080820f8ba01acfc257c5fc50d2fde3b647a13b08fd6dd7038490f648d88c23f94d60d8dcdfa06c365d6fe888e844b74a6e9ddabe091329a24ae207792f4f6252ec3e5fe4aa46", - "result": - { - "from": "0x337160455646d3b876cc3768e701a41bbc21ed3a", - "gas": "0xfa0", - "gasUsed": "0x5208", - "input": "0x", - "output": "0x", - "to": "0x072d51ab13cee591d38f527c589c36669c0a6854", - "type": "CALL", - "value": "0x3635c9adc5dea00000" - } -} diff --git a/node/cn/tracers/testdata/contracts/CallCodeCaller.sol b/node/cn/tracers/testdata/contracts/CallCodeCaller.sol index df7e01330..1e4b20a7a 100644 --- a/node/cn/tracers/testdata/contracts/CallCodeCaller.sol +++ b/node/cn/tracers/testdata/contracts/CallCodeCaller.sol @@ -6,11 +6,11 @@ contract Caller { callee = _callee; } - function callHelloWorld() public { + function callHelloWorld() public payable { callee.callcode(abi.encodeWithSignature("helloWorld()")); } } contract Callee { - function helloWorld() public {} + function helloWorld() public payable {} } diff --git a/node/cn/tracers/testdata/contracts/Counter.sol b/node/cn/tracers/testdata/contracts/Counter.sol new file mode 100644 index 000000000..175274a6a --- /dev/null +++ b/node/cn/tracers/testdata/contracts/Counter.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract Counter { + uint256 public number; + + constructor() { + } + + function increment() public { + number++; + } + + function die() public { + number++; + require(1 == 0); + } + + function dieMsg() public { + number++; + require(2 == 1, "bad input"); + } +} diff --git a/node/cn/tracers/testdata/contracts/DelegateCaller.sol b/node/cn/tracers/testdata/contracts/DelegateCaller.sol index 935323a72..9938c6200 100644 --- a/node/cn/tracers/testdata/contracts/DelegateCaller.sol +++ b/node/cn/tracers/testdata/contracts/DelegateCaller.sol @@ -6,11 +6,11 @@ contract Caller { callee = _callee; } - function callHelloWorld() public { + function callHelloWorld() public payable { callee.delegatecall(abi.encodeWithSignature("helloWorld()")); } } contract Callee { - function helloWorld() public {} + function helloWorld() public payable {} } diff --git a/node/cn/tracers/testdata/contracts/Factory.sol b/node/cn/tracers/testdata/contracts/Factory.sol index 7e9beaa98..1cc597584 100644 --- a/node/cn/tracers/testdata/contracts/Factory.sol +++ b/node/cn/tracers/testdata/contracts/Factory.sol @@ -1,11 +1,13 @@ -pragma solidity ^0.5.6; +pragma solidity ^0.8.24; contract Factory { - function createContract (bytes32 name) public { - new Contract(name); + function createContract (uint256 num) public { + new Contract(num); } } contract Contract { - constructor(bytes32 name) public {} + constructor(uint256 num) { + num -= 100; + } } \ No newline at end of file diff --git a/node/cn/tracers/testdata/contracts/Factory2.sol b/node/cn/tracers/testdata/contracts/Factory2.sol index 4eae92ffa..2fc4b71cd 100644 --- a/node/cn/tracers/testdata/contracts/Factory2.sol +++ b/node/cn/tracers/testdata/contracts/Factory2.sol @@ -1,17 +1,15 @@ -pragma solidity ^0.5.6; +pragma solidity ^0.8.24; contract Factory { - function deploy(bytes memory code, uint256 salt) public { - address addr; - assembly { - addr := create2(0, add(code, 0x20), mload(code), salt) - if iszero(extcodesize(addr)) { - revert(0, 0) - } - } + event Deploy(address a); + function deploy(bytes32 salt, uint256 arg) public { + Contract a = new Contract{salt: salt}(arg); + emit Deploy(address(a)); } } contract Contract { - constructor(bytes32 name) public {} + constructor(uint256 arg) { + arg -= 100; // reverts if arg < 100 + } } diff --git a/node/cn/tracers/testdata/contracts/Sha256.sol b/node/cn/tracers/testdata/contracts/Sha256.sol new file mode 100644 index 000000000..3f7501de9 --- /dev/null +++ b/node/cn/tracers/testdata/contracts/Sha256.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract Sha256 { + + function sha256(bytes memory data) public payable { + sha256(data); + } +} diff --git a/node/cn/tracers/testdata/contracts/StaticCaller.sol b/node/cn/tracers/testdata/contracts/StaticCaller.sol index 9f4d0faf7..4c172600e 100644 --- a/node/cn/tracers/testdata/contracts/StaticCaller.sol +++ b/node/cn/tracers/testdata/contracts/StaticCaller.sol @@ -6,7 +6,7 @@ contract StaticCaller { callee = _callee; } - function callHelloWorld() public { + function callHelloWorld() public payable { callee.staticcall(abi.encodeWithSignature("helloWorld()")); } } diff --git a/node/cn/tracers/testdata/makeTest.js b/node/cn/tracers/testdata/makeTest.js new file mode 100644 index 000000000..bb0bc95b3 --- /dev/null +++ b/node/cn/tracers/testdata/makeTest.js @@ -0,0 +1,54 @@ +// Create a testdata JSON out of a transaction hash (tx) +var makeTest = function(tx, tracerConfig) { + var block = eth.getBlock(eth.getTransaction(tx).blockHash); + + // Generate the genesis block from the block, transaction and prestate data + // as if the blockchain was born just before the transaction. + // Note that only config and alloc are used in the tracers_test. + var alloc = debug.traceTransaction(tx, {tracer: "prestateTracer"}); + for (var key in alloc) { + alloc[key].nonce = alloc[key].nonce.toString(); + } + var config = klay.getChainConfig(block.number); + var genesis = { + alloc, + config, + }; + + // Fill the prestate for feePayer account, if the tx is fee delegated. + // You must use an archive node for fee delegated tx. + var klayTx = klay.getTransaction(tx); + if (klayTx.feePayer) { + var account = klay.getAccount(klayTx.feePayer, klayTx.blockNumber - 1).account; + genesis.alloc[klayTx.feePayer] = { + balance: account.balance, + nonce: account.nonce, + // feePayer's code and storage, even if exists, are irrelevant executing current tx. + code: "0x", + storage: {}, + }; + } + + // Collect the necessary block context. + var context = { + mixHash: block.mixHash, + number: block.number.toString(), + timestamp: block.timestamp.toString(), + blockScore: block.difficulty.toString(), + } + if (block.baseFeePerGas) { + context.baseFeePerGas = block.baseFeePerGas.toString(); + } + + // Generate the correct call trace + var result = debug.traceTransaction(tx, tracerConfig); + + console.log(JSON.stringify({ + _comment: `chainId ${parseInt(eth.chainId())} txHash ${tx}`, // for the record + genesis: genesis, + context: context, + // Must use klay.getRawTransaction(tx) instead of eth.getRawTransaction(tx) to preserve eth envelope 0x78. + input: klay.getRawTransaction(tx), + result: result, + }, null, 2)); +} diff --git a/node/cn/tracers/testdata/makeTest.sh b/node/cn/tracers/testdata/makeTest.sh new file mode 100755 index 000000000..8727fc8d0 --- /dev/null +++ b/node/cn/tracers/testdata/makeTest.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +if [ $# -lt 3 ]; then + echo "Usage: $0 " + exit 1 +fi + +TRACER=$1 +TX=$2 +OUT=$3 +RPC=${RPC:-"http://localhost:8551"} + +if [ -f "$OUT" ]; then + echo "File $OUT exists. If you want to overwrite it, remove it first." + exit 0 +fi + +set -x +ken attach --preload makeTest.js --exec "makeTest(\"$TX\", {tracer: \"$TRACER\"})" $RPC > $OUT diff --git a/node/cn/tracers/testdata/prestate_tracer/create2_eip1014_example4.json b/node/cn/tracers/testdata/prestate_tracer/create2_eip1014_example4.json new file mode 100644 index 000000000..9d848787c --- /dev/null +++ b/node/cn/tracers/testdata/prestate_tracer/create2_eip1014_example4.json @@ -0,0 +1,91 @@ + { + "_comment": "EIP-1014 Skinny CREATE2 Example 4. The bytecode in 0xdeadbeef pushes 'deadbeef' into memory, then the other params, and calls CREATE2, then returns the address.", + "genesis": { + "alloc": { + "0x00000000000000000000000000000000deadbeef": { + "balance": "0x1", + "nonce": "1", + "code": "0x63deadbeef60005263cafebabe6004601c6000F560005260206000F3", + "storage": {} + }, + "0xc142709fb77c43c4b0fa539b91549d1859c5521a": { + "balance": "0x1c6bf52634000", + "nonce": "1", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "number": "8000000", + "timestamp": "0", + "blockScore": "0x1" + }, + "input": "0xf8600101834c4b409400000000000000000000000000000000deadbeef808026a09279149c669e4e6571a7b662c21aa1395aecaf7bbce41cd97c4fcc13e9b019b7a031b61de0826d001d583c5b8386fb9816ee9adb06e874c59f16c6d593c2212bf2", + "result": { + "0x00000000000000000000000000000000deadbeef": { + "balance": "0x1", + "nonce": 1, + "code": "0x63deadbeef60005263cafebabe6004601c6000f560005260206000f3", + "storage": {} + }, + "0x60f3f640a8508fc6a86d45df051962668e1e8ac7": { + "balance": "0x0", + "nonce": 0, + "code": "0x", + "storage": {} + }, + "0xc142709fb77c43c4b0fa539b91549d1859c5521a": { + "balance": "0x1c6bf52634000", + "nonce": 1, + "code": "0x", + "storage": {} + } + } +} diff --git a/node/cn/tracers/testdata/prestate_tracer/to_empty_eoa.json b/node/cn/tracers/testdata/prestate_tracer/to_empty_eoa.json new file mode 100644 index 000000000..8f90ef5e2 --- /dev/null +++ b/node/cn/tracers/testdata/prestate_tracer/to_empty_eoa.json @@ -0,0 +1,86 @@ + { + "_comment": "chainId 1001 txHash 0xf3b71a6f97667dba14aef6d512c9bb01c7af43756e464c57e12b2fdfa7a9d3f2 Corner case where tx.to is an empty account", + "genesis": { + "alloc": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x0", + "nonce": "0", + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5e3af16b1880000", + "nonce": "0", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x52b744eda45dfd4a39fab9f2ca50d6353d6538f715d35ac235c93824a3a73b0c", + "number": "156280235", + "timestamp": "1717861471", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x08f87e80850ba43b740082cd1494ba736c844fd44c380ce19423f9f1ddcb9cd19b6c80947f0546832758f61410e81a94d7a07d55b1dfd278f847f8458207f6a0a84e3bf4113b07199f18b01a88a55723d06d9096ccaac298bdd63c5eb5042896a00356ad1d3a2399a94a3d6ebcc4627575c6e4a5b5d6bc217cef83a7c09b4998aa", + "result": { + "0xba736c844fd44c380ce19423f9f1ddcb9cd19b6c": { + "balance": "0x0", + "nonce": 0, + "code": "0x", + "storage": {} + }, + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b5e3af16b1880000", + "nonce": 0, + "code": "0x", + "storage": {} + } + } +} diff --git a/node/cn/tracers/testdata/prestate_tracer/txtype_cancel.json b/node/cn/tracers/testdata/prestate_tracer/txtype_cancel.json new file mode 100644 index 000000000..0c9030c29 --- /dev/null +++ b/node/cn/tracers/testdata/prestate_tracer/txtype_cancel.json @@ -0,0 +1,74 @@ + { + "_comment": "chainId 1001 txHash 0xa8794bfef57dd03a17fcadea8cf74c5179549a2e4f9ee3775101edb6492b54ac", + "genesis": { + "alloc": { + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b57621a31dd80800", + "nonce": "8", + "code": "0x", + "storage": {} + } + }, + "config": { + "chainId": 1001, + "istanbulCompatibleBlock": 75373312, + "londonCompatibleBlock": 80295291, + "ethTxTypeCompatibleBlock": 86513895, + "magmaCompatibleBlock": 98347376, + "koreCompatibleBlock": 111736800, + "shanghaiCompatibleBlock": 131608000, + "cancunCompatibleBlock": 141367000, + "kaiaCompatibleBlock": 156660000, + "kip103CompatibleBlock": 119145600, + "kip103ContractAddress": "0xd5ad6d61dd87edabe2332607c328f5cc96aecb95", + "kip160CompatibleBlock": 156660000, + "kip160ContractAddress": "0x3d478e73c9dbebb72332712d7265961b1868d193", + "randaoCompatibleBlock": 141367000, + "istanbul": { + "epoch": 604800, + "policy": 2, + "sub": 22 + }, + "unitPrice": 250000000000, + "deriveShaImpl": 0, + "governance": { + "governingNode": "0x99fb17d324fa0e07f23b49d09028ac0919414db6", + "governanceMode": "single", + "govParamContract": "0x84214cec245d752a9f2faf355b59ddf7f58a6edb", + "reward": { + "mintingAmount": 6400000000000000000, + "ratio": "50/20/30", + "kip82ratio": "20/80", + "useGiniCoeff": true, + "deferredTxFee": true, + "stakingUpdateInterval": 86400, + "proposerUpdateInterval": 3600, + "minimumStake": 5000000 + }, + "kip71": { + "lowerboundbasefee": 25000000000, + "upperboundbasefee": 750000000000, + "gastarget": 30000000, + "maxblockgasusedforbasefee": 60000000, + "basefeedenominator": 20 + } + } + } + }, + "context": { + "mixHash": "0x05159b99ccef376538405123416489387231cae8402d72abe83dc9fc940ebe05", + "number": "156322405", + "timestamp": "1717903641", + "blockScore": "0x1", + "baseFeePerGas": "0x5d21dba00" + }, + "input": "0x38f86808850ba43b740082cd14947f0546832758f61410e81a94d7a07d55b1dfd278f847f8458207f5a007c28a6ef5274d3077c886854a4ce139c5fd8e4800c440b40008d75344956500a01d7f4f4068dc8867944eb4223efcf186af1c9f1b031e82632705d9388809e6a1", + "result": { + "0x7f0546832758f61410e81a94d7a07d55b1dfd278": { + "balance": "0x2b57621a31dd80800", + "nonce": 8, + "code": "0x", + "storage": {} + } + } +} diff --git a/node/cn/tracers/tracer.go b/node/cn/tracers/tracer.go index 05c4b6fd4..74b6b318e 100644 --- a/node/cn/tracers/tracer.go +++ b/node/cn/tracers/tracer.go @@ -689,6 +689,7 @@ func (jst *Tracer) CaptureStart(env *vm.EVM, from common.Address, to common.Addr jst.ctx["gasPrice"] = env.TxContext.GasPrice jst.ctx["value"] = value jst.ctx["intrinsicGas"] = jst.gasLimit - gas + jst.dbWrapper.db = env.StateDB } // CaptureState implements the Tracer interface to trace a single step of VM execution. @@ -714,7 +715,6 @@ func (jst *Tracer) CaptureState(env *vm.EVM, pc uint64, op vm.OpCode, gas, cost, jst.stackWrapper.stack = scope.Stack jst.memoryWrapper.memory = scope.Memory jst.contractWrapper.contract = scope.Contract - jst.dbWrapper.db = env.StateDB *jst.pcValue = uint(pc) *jst.gasValue = uint(gas) diff --git a/node/cn/tracers/tracers_test.go b/node/cn/tracers/tracers_test.go index c1f3d37bc..8613cb111 100644 --- a/node/cn/tracers/tracers_test.go +++ b/node/cn/tracers/tracers_test.go @@ -21,8 +21,6 @@ package tracers import ( - "crypto/ecdsa" - "crypto/rand" "encoding/json" "math/big" "os" @@ -36,7 +34,6 @@ import ( "github.com/klaytn/klaytn/common" "github.com/klaytn/klaytn/common/hexutil" "github.com/klaytn/klaytn/common/math" - "github.com/klaytn/klaytn/crypto" "github.com/klaytn/klaytn/fork" "github.com/klaytn/klaytn/params" "github.com/klaytn/klaytn/rlp" @@ -46,397 +43,137 @@ import ( "github.com/stretchr/testify/require" ) -// To generate a new callTracer test, use the `make_testdata.sh` script. - -type reverted struct { - Contract *common.Address `json:"contract"` - Message string `json:"message"` -} - -// callTrace is the result of a callTracer run. -type callTrace struct { - Type string `json:"type"` - From *common.Address `json:"from"` - To *common.Address `json:"to"` - Input hexutil.Bytes `json:"input"` - Output hexutil.Bytes `json:"output"` - Gas hexutil.Uint64 `json:"gas,omitempty"` - GasUsed hexutil.Uint64 `json:"gasUsed,omitempty"` - Value math.HexOrDecimal256 `json:"value,omitempty"` - Error string `json:"error,omitempty"` - Calls []callTrace `json:"calls,omitempty"` - Reverted *reverted `json:"reverted,omitempty"` -} - -type callContext struct { - Number math.HexOrDecimal64 `json:"number"` - BlockScore *math.HexOrDecimal256 `json:"blockScore"` - Time math.HexOrDecimal64 `json:"timestamp"` - GasLimit math.HexOrDecimal64 `json:"gasLimit"` - Miner common.Address `json:"miner"` -} - -// callTracerTest defines a single test to check the call tracer against. -type callTracerTest struct { - Genesis *blockchain.Genesis `json:"genesis"` - Context *callContext `json:"context"` - Input string `json:"input,omitempty"` - Transaction map[string]string `json:"transaction,omitempty"` - Result *callTrace `json:"result"` +type tracerTestdata struct { + Genesis *struct { + Config *params.ChainConfig `json:"config"` + Alloc blockchain.GenesisAlloc `json:"alloc"` + } `json:"genesis"` + + Context *struct { + BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` + MixHash hexutil.Bytes `json:"mixHash"` + Number math.HexOrDecimal64 `json:"number"` + Timestamp math.HexOrDecimal64 `json:"timestamp"` + BlockScore *math.HexOrDecimal256 `json:"blockScore"` + } `json:"context"` + + Input string `json:"input"` + Result json.RawMessage `json:"result"` } -func TestPrestateTracerCreate2(t *testing.T) { - unsignedTx := types.NewTransaction(1, common.HexToAddress("0x00000000000000000000000000000000deadbeef"), - new(big.Int), 5000000, big.NewInt(1), []byte{}) - - privateKeyECDSA, err := ecdsa.GenerateKey(crypto.S256(), rand.Reader) - if err != nil { - t.Fatalf("err %v", err) - } - signer := types.LatestSignerForChainID(big.NewInt(1)) - tx, err := types.SignTx(unsignedTx, signer, privateKeyECDSA) - if err != nil { - t.Fatalf("err %v", err) - } - /** - This comes from one of the test-vectors on the Skinny Create2 - EIP - address 0x00000000000000000000000000000000deadbeef - salt 0x00000000000000000000000000000000000000000000000000000000cafebabe - init_code 0xdeadbeef - gas (assuming no mem expansion): 32006 - result: 0x60f3f640a8508fC6a86d45DF051962668E1e8AC7 - */ - origin, _ := signer.Sender(tx) - txContext := vm.TxContext{ - Origin: origin, - GasPrice: big.NewInt(1), - } - blockContext := vm.BlockContext{ - CanTransfer: blockchain.CanTransfer, - Transfer: blockchain.Transfer, - Coinbase: common.Address{}, - BlockNumber: new(big.Int).SetUint64(8000000), - Time: new(big.Int).SetUint64(5), - BlockScore: big.NewInt(0x30000), - GasLimit: uint64(6000000), - } - alloc := blockchain.GenesisAlloc{} - // The code pushes 'deadbeef' into memory, then the other params, and calls CREATE2, then returns - // the address - alloc[common.HexToAddress("0x00000000000000000000000000000000deadbeef")] = blockchain.GenesisAccount{ - Nonce: 1, - Code: hexutil.MustDecode("0x63deadbeef60005263cafebabe6004601c6000F560005260206000F3"), - Balance: big.NewInt(1), - } - alloc[origin] = blockchain.GenesisAccount{ - Nonce: 1, - Code: []byte{}, - Balance: big.NewInt(500000000000000), - } - statedb := tests.MakePreState(database.NewMemoryDBManager(), alloc) - // Create the tracer, the EVM environment and run it - tracer, err := New("prestateTracer", new(Context), false) - if err != nil { - t.Fatalf("failed to create call tracer: %v", err) - } - evm := vm.NewEVM(blockContext, txContext, statedb, params.MainnetChainConfig, &vm.Config{Debug: true, Tracer: tracer}) - - fork.SetHardForkBlockNumberConfig(¶ms.ChainConfig{}) - msg, err := tx.AsMessageWithAccountKeyPicker(signer, statedb, blockContext.BlockNumber.Uint64()) - if err != nil { - t.Fatalf("failed to prepare transaction for tracing: %v", err) - } - st := blockchain.NewStateTransition(evm, msg) - if _, err := st.TransitionDb(); err != nil { - t.Fatalf("failed to execute transaction: %v", err) - } - // Retrieve the trace result and compare against the etalon - res, err := tracer.GetResult() - if err != nil { - t.Fatalf("failed to retrieve trace result: %v", err) - } - ret := make(map[string]interface{}) - if err := json.Unmarshal(res, &ret); err != nil { - t.Fatalf("failed to unmarshal trace result: %v", err) - } - if _, has := ret["0x60f3f640a8508fc6a86d45df051962668e1e8ac7"]; !has { - t.Fatalf("Expected 0x60f3f640a8508fc6a86d45df051962668e1e8ac7 in result") - } +func TestPrestateTracer(t *testing.T) { + forEachJson(t, "testdata/prestate_tracer", func(t *testing.T, tc *tracerTestdata) { + tracer, err := New("prestateTracer", new(Context), false) + require.NoError(t, err) + runTracer(t, tc, tracer) + }) } -func covertToCallTrace(t *testing.T, internalTx *vm.InternalTxTrace) *callTrace { - // coverts nested InternalTxTraces - var nestedCalls []callTrace - for _, call := range internalTx.Calls { - nestedCalls = append(nestedCalls, *covertToCallTrace(t, call)) - } - - // decodes input and output if they are not an empty string - var decodedInput []byte - var decodedOutput []byte - var err error - if internalTx.Input != "" { - decodedInput, err = hexutil.Decode(internalTx.Input) - if err != nil { - t.Fatal("failed to decode input of an internal transaction", "err", err) - } - } - if internalTx.Output != "" { - decodedOutput, err = hexutil.Decode(internalTx.Output) - if err != nil { - t.Fatal("failed to decode output of an internal transaction", "err", err) +func TestCallTracer(t *testing.T) { + forEachJson(t, "testdata/call_tracer", func(t *testing.T, tc *tracerTestdata) { + tracer := vm.NewCallTracer() + + // Run the tracer and check the tracer result + tx, execResult, tracerResult := runTracer(t, tc, tracer) + + // Check the tracer result against the tx and execution result + // Note that CallFrame.Type is not correctly unmarshalled, so we need to unmarshal it separately + var callFrame *vm.CallFrame + require.NoError(t, json.Unmarshal(tracerResult, &callFrame)) + var callFrame2 struct { + TypeString string `json:"type"` } - } + require.NoError(t, json.Unmarshal(tracerResult, &callFrame2)) - // decodes value into *big.Int if it is not an empty string - var value *big.Int - if internalTx.Value != "" { - value, err = hexutil.DecodeBig(internalTx.Value) - if err != nil { - t.Fatal("failed to decode value of an internal transaction", "err", err) - } - } - var val math.HexOrDecimal256 - if value != nil { - val = math.HexOrDecimal256(*value) - } + // contract creation tx, 'to' is the deployed contract address, if succeeded. + topLevelCreate := (tx.Type().IsEthereumTransaction() && tx.To() == nil) || tx.Type().IsContractDeploy() + // txs without 'to' address, yet not contract creation. treated as CALL to self in the tracer. + assumeToSelf := (tx.Type().IsAccountUpdate() || tx.Type().IsCancelTransaction() || tx.Type().IsChainDataAnchoring()) - errStr := "" - if internalTx.Error != nil { - errStr = internalTx.Error.Error() - } - - var revertedInfo *reverted - if internalTx.Reverted != nil { - revertedInfo = &reverted{ - Contract: internalTx.Reverted.Contract, - Message: internalTx.Reverted.Message, + if topLevelCreate { + assert.Equal(t, "CREATE", callFrame2.TypeString) + } else { + assert.Equal(t, "CALL", callFrame2.TypeString) } - } - - ct := &callTrace{ - Type: internalTx.Type, - From: internalTx.From, - To: internalTx.To, - Input: decodedInput, - Output: decodedOutput, - Gas: hexutil.Uint64(internalTx.Gas), - GasUsed: hexutil.Uint64(internalTx.GasUsed), - Value: val, - Error: errStr, - Calls: nestedCalls, - Reverted: revertedInfo, - } - - return ct + assert.Equal(t, tx.ValidatedSender(), callFrame.From) + assert.Equal(t, tx.Gas(), callFrame.Gas) + assert.Equal(t, execResult.UsedGas, callFrame.GasUsed) + assert.Equal(t, tx.Data(), callFrame.Input) + if topLevelCreate && execResult.VmExecutionStatus == types.ReceiptStatusSuccessful { + assert.NotEqual(t, nil, callFrame.To) + assert.NotEqual(t, common.Address{}, callFrame.To) + } else if assumeToSelf { + assert.Equal(t, tx.ValidatedSender(), *callFrame.To) + } else { + assert.Equal(t, tx.To(), callFrame.To) + } + }) } -// Iterates over all the input-output datasets in the tracer test harness and -// runs the JavaScript tracers against them. -func TestCallTracer(t *testing.T) { - files, err := os.ReadDir("testdata") - if err != nil { - t.Fatalf("failed to retrieve tracer test suite: %v", err) - } +func forEachJson(t *testing.T, dir string, f func(t *testing.T, tc *tracerTestdata)) { + files, err := os.ReadDir(dir) + require.NoError(t, err) + for _, file := range files { - if !strings.HasPrefix(file.Name(), "call_tracer_") { + if !strings.HasSuffix(file.Name(), ".json") { continue } - file := file // capture range variable - t.Run(camel(strings.TrimSuffix(strings.TrimPrefix(file.Name(), "call_tracer_"), ".json")), func(t *testing.T) { - // t.Parallel() - - // Call tracer test found, read if from disk - blob, err := os.ReadFile(filepath.Join("testdata", file.Name())) - if err != nil { - t.Fatalf("failed to read testcase: %v", err) - } - test := new(callTracerTest) - if err := json.Unmarshal(blob, test); err != nil { - t.Fatalf("failed to parse testcase: %v", err) - } - - signer := types.MakeSigner(test.Genesis.Config, new(big.Int).SetUint64(uint64(test.Context.Number))) - tx := new(types.Transaction) - // Configure a blockchain with the given prestate - if test.Input != "" { - if err := rlp.DecodeBytes(common.FromHex(test.Input), tx); err != nil { - t.Fatalf("failed to parse testcase input: %v", err) - } - } else { - // Configure a blockchain with the given prestate - value := new(big.Int) - gasPrice := new(big.Int) - err = value.UnmarshalJSON([]byte(test.Transaction["value"])) - require.NoError(t, err) - err = gasPrice.UnmarshalJSON([]byte(test.Transaction["gasPrice"])) - require.NoError(t, err) - nonce, b := math.ParseUint64(test.Transaction["nonce"]) - require.True(t, b) - gas, b := math.ParseUint64(test.Transaction["gas"]) - require.True(t, b) - - to := common.HexToAddress(test.Transaction["to"]) - input := common.FromHex(test.Transaction["input"]) - tx = types.NewTransaction(nonce, to, value, gas, gasPrice, input) + blob, err := os.ReadFile(filepath.Join(dir, file.Name())) + require.NoError(t, err, file.Name()) - testKey, err := crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - require.NoError(t, err) - err = tx.Sign(signer, testKey) - require.NoError(t, err) - } + tc := new(tracerTestdata) + require.NoError(t, json.Unmarshal(blob, tc), file.Name()) - origin, _ := signer.Sender(tx) - - txContext := vm.TxContext{ - Origin: origin, - GasPrice: tx.GasPrice(), - } - blockContext := vm.BlockContext{ - CanTransfer: blockchain.CanTransfer, - Transfer: blockchain.Transfer, - BlockNumber: new(big.Int).SetUint64(uint64(test.Context.Number)), - Time: new(big.Int).SetUint64(uint64(test.Context.Time)), - BlockScore: (*big.Int)(test.Context.BlockScore), - GasLimit: uint64(test.Context.GasLimit), - } - statedb := tests.MakePreState(database.NewMemoryDBManager(), test.Genesis.Alloc) - - // Create the tracer, the EVM environment and run it - tracer, err := New("callTracer", new(Context), false) - if err != nil { - t.Fatalf("failed to create call tracer: %v", err) - } - evm := vm.NewEVM(blockContext, txContext, statedb, test.Genesis.Config, &vm.Config{Debug: true, Tracer: tracer}) - - fork.SetHardForkBlockNumberConfig(test.Genesis.Config) - msg, err := tx.AsMessageWithAccountKeyPicker(signer, statedb, blockContext.BlockNumber.Uint64()) - if err != nil { - t.Fatalf("failed to prepare transaction for tracing: %v", err) - } - st := blockchain.NewStateTransition(evm, msg) - if _, err := st.TransitionDb(); err != nil { - t.Fatalf("failed to execute transaction: %v", err) - } - // Retrieve the trace result and compare against the etalon - res, err := tracer.GetResult() - if err != nil { - t.Fatalf("failed to retrieve trace result: %v", err) - } - ret := new(callTrace) - if err := json.Unmarshal(res, ret); err != nil { - t.Fatalf("failed to unmarshal trace result: %v", err) - } - jsonEqual(t, ret, test.Result) + t.Run(strings.TrimSuffix(file.Name(), ".json"), func(t *testing.T) { + f(t, tc) }) } } -// Compare JSON representations for human-friendly diffs. -func jsonEqual(t *testing.T, x, y interface{}) { - xj, err := json.MarshalIndent(x, "", " ") - assert.Nil(t, err) - - yj, err := json.MarshalIndent(y, "", " ") - assert.Nil(t, err) - - assert.Equal(t, string(xj), string(yj)) -} - -// Iterates over all the input-output datasets in the tracer test harness and -// runs the InternalCallTracer against them. -func TestInternalCallTracer(t *testing.T) { - files, err := os.ReadDir("testdata") - if err != nil { - t.Fatalf("failed to retrieve tracer test suite: %v", err) - } - for _, file := range files { - if !strings.HasPrefix(file.Name(), "call_tracer_") { - continue +func runTracer(t *testing.T, tc *tracerTestdata, tracer vm.Tracer) (*types.Transaction, *blockchain.ExecutionResult, json.RawMessage) { + // Parse the raw transaction + var tx *types.Transaction + require.NoError(t, rlp.DecodeBytes(common.FromHex(tc.Input), &tx)) + + // Create the EVM environment at the point of tx execution + var ( + config = tc.Genesis.Config + alloc = tc.Genesis.Alloc + + header = &types.Header{ // Must have all fields used in NewEVMBlockContext and NewEVMTxContext + BaseFee: (*big.Int)(tc.Context.BaseFee), + MixHash: tc.Context.MixHash, + Number: new(big.Int).SetUint64(uint64(tc.Context.Number)), + Time: new(big.Int).SetUint64(uint64(tc.Context.Timestamp)), + BlockScore: (*big.Int)(tc.Context.BlockScore), } - file := file // capture range variable - t.Run(camel(strings.TrimSuffix(strings.TrimPrefix(file.Name(), "call_tracer_"), ".json")), func(t *testing.T) { - // t.Parallel() - - // Call tracer test found, read if from disk - blob, err := os.ReadFile(filepath.Join("testdata", file.Name())) - if err != nil { - t.Fatalf("failed to read testcase: %v", err) - } - test := new(callTracerTest) - if err := json.Unmarshal(blob, test); err != nil { - t.Fatalf("failed to parse testcase: %v", err) - } - - signer := types.MakeSigner(test.Genesis.Config, new(big.Int).SetUint64(uint64(test.Context.Number))) - tx := new(types.Transaction) - // Configure a blockchain with the given prestate - if test.Input != "" { - if err := rlp.DecodeBytes(common.FromHex(test.Input), tx); err != nil { - t.Fatalf("failed to parse testcase input: %v", err) - } - } else { - // Configure a blockchain with the given prestate - value := new(big.Int) - gasPrice := new(big.Int) - err = value.UnmarshalJSON([]byte(test.Transaction["value"])) - require.NoError(t, err) - err = gasPrice.UnmarshalJSON([]byte(test.Transaction["gasPrice"])) - require.NoError(t, err) - nonce, b := math.ParseUint64(test.Transaction["nonce"]) - require.True(t, b) - gas, b := math.ParseUint64(test.Transaction["gas"]) - require.True(t, b) - to := common.HexToAddress(test.Transaction["to"]) - input := common.FromHex(test.Transaction["input"]) + signer = types.MakeSigner(config, header.Number) + blockContext = blockchain.NewEVMBlockContext(header, nil, &common.Address{}) // stub author (COINBASE) to 0x0 + txContext = blockchain.NewEVMTxContext(tx, header, config) + statedb = tests.MakePreState(database.NewMemoryDBManager(), alloc) + evm = vm.NewEVM(blockContext, txContext, statedb, config, &vm.Config{Debug: true, Tracer: tracer}) + ) - tx = types.NewTransaction(nonce, to, value, gas, gasPrice, input) + // Run the transaction with tracer enabled + fork.SetHardForkBlockNumberConfig(config) // needed by IntrinsicGas() + msg, err := tx.AsMessageWithAccountKeyPicker(signer, statedb, header.Number.Uint64()) + require.NoError(t, err) - testKey, err := crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") - require.NoError(t, err) - err = tx.Sign(signer, testKey) - require.NoError(t, err) - } - - origin, _ := signer.Sender(tx) - - txContext := vm.TxContext{ - Origin: origin, - GasPrice: tx.GasPrice(), - } - blockContext := vm.BlockContext{ - CanTransfer: blockchain.CanTransfer, - Transfer: blockchain.Transfer, - BlockNumber: new(big.Int).SetUint64(uint64(test.Context.Number)), - Time: new(big.Int).SetUint64(uint64(test.Context.Time)), - BlockScore: (*big.Int)(test.Context.BlockScore), - GasLimit: uint64(test.Context.GasLimit), - } - statedb := tests.MakePreState(database.NewMemoryDBManager(), test.Genesis.Alloc) - - // Create the tracer, the EVM environment and run it - tracer := vm.NewInternalTxTracer() - evm := vm.NewEVM(blockContext, txContext, statedb, test.Genesis.Config, &vm.Config{Debug: true, Tracer: tracer}) - - fork.SetHardForkBlockNumberConfig(test.Genesis.Config) - msg, err := tx.AsMessageWithAccountKeyPicker(signer, statedb, blockContext.BlockNumber.Uint64()) - if err != nil { - t.Fatalf("failed to prepare transaction for tracing: %v", err) - } - st := blockchain.NewStateTransition(evm, msg) - if _, err := st.TransitionDb(); err != nil { - t.Fatalf("failed to execute transaction: %v", err) - } - // Retrieve the trace result and compare against the etalon - res, err := tracer.GetResult() - if err != nil { - t.Fatalf("failed to retrieve trace result: %v", err) - } + st := blockchain.NewStateTransition(evm, msg) + execResult, err := st.TransitionDb() + require.NoError(t, err) - resultFromInternalCallTracer := covertToCallTrace(t, res) - jsonEqual(t, test.Result, resultFromInternalCallTracer) - }) + var tracerResult json.RawMessage + switch tracer := tracer.(type) { + case *Tracer: + tracerResult, err = tracer.GetResult() + case *vm.CallTracer: + tracerResult, err = tracer.GetResult() } + require.NoError(t, err) + assert.JSONEq(t, string(tc.Result), string(tracerResult)) + + return msg, execResult, tracerResult }