Skip to content

Repository files navigation

@metamask/nonce-tracker

How metamask calculates nonces

constNonceTracker=require('@metamask/nonce-tracker');constnonceTracker=newNonceTracker(config);nonceLock=nonceTracker.getNonceLock('0xselectedEthereumAddress');nonce=nonceLock.nextNonce;

NonceTracker

index.js:13-159

Parameters

  • optsObject {Object}
    • opts.providerObject a ethereum provider
    • opts.getPendingTransactionsFunction a function that returns an array of txMeta whose status is submitted
    • opts.getConfirmedTransactionsFunction a function that returns an array of txMeta whose status is confirmed
    • opts.blockTracker

getGlobalLock

index.js:27-32

Returns Promise<Object> with the key releaseLock (the gloabl mutex)

getNonceLock

index.js:48-82

Parameters

  • address

Properties

  • highestLocallyConfirmednumber A hex string of the highest nonce on a confirmed transaction.
  • nextNetworkNoncenumber The next nonce suggested by the eth_getTransactionCount method.
  • highestSuggestednumber The maximum between the other two, the number returned.

this will return an object with the nextNoncenonceDetails, and the releaseLock Note: releaseLock must be called after adding a signed tx to pending transactions (or discarding).

Parameters

  • address {string} the hex string for the address whose nonce we are calculating

Returns Promise<NonceDetails>

Running tests

yarn test

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

49 stars

Watchers

55 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages