From e05d46807525f76dab83f84e9dfc9e4537398641 Mon Sep 17 00:00:00 2001 From: Yondon Fu Date: Mon, 7 Jan 2019 03:47:11 -0500 Subject: [PATCH] internal/ethapi: ask transaction pool for pending nonce (#15794) --- internal/ethapi/api.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 656555b3ba..73b629bd9c 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -1074,6 +1074,15 @@ func (s *PublicTransactionPoolAPI) GetRawTransactionByBlockHashAndIndex(ctx cont // GetTransactionCount returns the number of transactions the given address has sent for the given block number func (s *PublicTransactionPoolAPI) GetTransactionCount(ctx context.Context, address common.Address, blockNr rpc.BlockNumber) (*hexutil.Uint64, error) { + // Ask transaction pool for the nonce which includes pending transactions + if blockNr == rpc.PendingBlockNumber { + nonce, err := s.b.GetPoolNonce(ctx, address) + if err != nil { + return nil, err + } + return (*hexutil.Uint64)(&nonce), nil + } + // Resolve block number and use its state to ask for the nonce state, _, err := s.b.StateAndHeaderByNumber(ctx, blockNr) if state == nil || err != nil { return nil, err