diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 6e888fc93b..adb97e4070 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -579,10 +579,15 @@ func (s *PublicBlockChainAPI) doCall(ctx context.Context, args CallArgs, blockNr } else { addr = args.From } + nonce, err := state.GetNonce(ctx, addr) + if err != nil { + return "0x", common.Big0, err + } // Assemble the CALL invocation msg := callmsg{ addr: addr, + nonce: nonce, to: args.To, gas: args.Gas.BigInt(), gasPrice: args.GasPrice.BigInt(), @@ -698,10 +703,15 @@ func (s *PublicBlockChainAPI) TraceCall(ctx context.Context, args CallArgs, bloc } else { addr = args.From } + nonce, err := state.GetNonce(ctx, addr) + if err != nil { + return nil, err + } // Assemble the CALL invocation msg := callmsg{ addr: addr, + nonce: nonce, to: args.To, gas: args.Gas.BigInt(), gasPrice: args.GasPrice.BigInt(), diff --git a/light/state_object.go b/light/state_object.go index 6be7f92ac9..0eb7d68b2c 100644 --- a/light/state_object.go +++ b/light/state_object.go @@ -102,7 +102,7 @@ func NewStateObject(address common.Address, odr OdrBackend) *StateObject { codeHash: emptyCodeHash, storage: make(Storage), } - object.trie = NewLightTrie(nil, odr, true) + object.trie = NewLightTrie(&TrieID{}, odr, true) return object }