|
|
@@ -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
|