{"_id":"@alayanetwork/nonce-tracker","_rev":"1-f92517e83ce460cc00abeb88b6260a9c","name":"@alayanetwork/nonce-tracker","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@alayanetwork/nonce-tracker","version":"1.0.1","description":"nonce calculation used in metamask","main":"index.js","scripts":{"lint":"echo","test":"mocha test/nonce-tracker-test.js"},"keywords":["ethereum"],"author":"","license":"ISC","dependencies":{"assert":"^1.4.1","await-semaphore":"^0.1.3","@alayanetwork/ethjs-query":"^0.3.4"},"devDependencies":{"ethereumjs-util":"^6.1.0","mocha":"^6.1.4","xtend":"^4.0.1"},"gitHead":"06e012f28e80fd984186e0c8b6ac493c44ad56a1","_id":"@alayanetwork/nonce-tracker@1.0.1","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-XtQgHlLc2r8y9eN2kOrR3MLWSjlZtTLNFFPz3+qUeX7v6igeqR7q153esRfqSFwfziUPaq5criCblE4cDSfhRg==","shasum":"1bfcd33403232bbb137df8a25514a276801137f9","tarball":"https://registry.npmjs.org/@alayanetwork/nonce-tracker/-/nonce-tracker-1.0.1.tgz","fileCount":10,"unpackedSize":21518,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfopJKCRA9TVsSAnZWagAAng8P/0KlWaL5nMpDtbeF7cyW\nP6qI92pTi4XxJ3xO8dDFV3/n/toygnBmKV/Wexrb2B08kJLfHqj6tf5qJ8Ep\n8ttODRXmdYElURmQLwGsXBFyX0VvOhosAUBN/PRcDhoi8TPkkb5SV37FwhA0\nw5d9XgbqT8CqvXjP2EnbTa9+T2P/xxEF3orEu3IOEe6Cjr/W32BPhCw/qpjY\ni1mQABnDS2ZcCVJuQVStZS7EG6EGCpNOrbdcgNwCvon47Ehk2WdnLJYRL87I\nXX6UTjiAG3TPZKE9J9vuA3Ddf47zKS2/dfzXDNleSN3sFnCouUpqC9TihEzb\nC5AkUC0JH5T/IFUBISEjZ8997xP5n/fzl2Dyp/dlcrPW0Q29y4TEj+DqO8tU\nrhLc9Ay0rkwtghubgqP17Ap0qknmbmft5ThVj3PoQuOiFvP2HPABwsCl7d4E\npmBECE5blP3AjR5hxO8/6DLMt2eTrohkU7UXJ544+mrAoUbXp6bh0868y5HI\nvP80Cskq/rqXOpf7dB5cdEW5cD+KyVb3QSoQIOEyUz+IPSez6lgsMpM2UPMR\nMTTh8xUwashOtAaWuSrtoXWbxtdlN6Lb6fW6bjj0NJ2+KijdBYt/bSFWBiI/\nqs51G7uXCKu0WiIE9VcUnOwXfuOlPLtvCVn3qcCpLTi1uat5MrEusfhp2vFr\nEf9B\r\n=1nI0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe4AKQdKxDSk0g1lfZOe10W6ERdbA/6SFI97sWGCQMvAIgCu1YcVTQ4ZvLahA49oNC5eNkW+gtQMk8APsHYxhH12E="}]},"_npmUser":{"name":"alayanetwork","email":"npm@latticex.foundation"},"directories":{},"maintainers":[{"name":"alayanetwork","email":"npm@latticex.foundation"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nonce-tracker_1.0.1_1604489802155_0.5667293573841587"},"_hasShrinkwrap":false}},"time":{"created":"2020-11-04T11:36:42.085Z","1.0.1":"2020-11-04T11:36:42.291Z","modified":"2022-04-04T12:33:58.619Z"},"maintainers":[{"name":"alayanetwork","email":"npm@latticex.foundation"}],"description":"nonce calculation used in metamask","keywords":["ethereum"],"license":"ISC","readme":"# nonce-tracker\n\nHow metamask calculates nonces\n\n```js\nconst NonceTracker = require('nonce-tracker')\n\nconst nonceTracker = new NonceTracker(config)\n\nnonceLock = nonceTracker.getNonceLock('0xselectedEthereumAddress')\n\nnonce = nonceLock.nextNonce\n```\n\n## NonceTracker\n\n[index.js:13-159][13]\n\n### Parameters\n\n-   `opts` **[Object][14]** {Object}\n    -   `opts.provider` **[Object][14]** a ethereum provider\n    -   `opts.getPendingTransactions` **[Function][15]** a function that returns an array of txMeta\n        whosee status is `submitted`\n    -   `opts.getConfirmedTransactions` **[Function][15]** a function that returns an array of txMeta\n        whose status is `confirmed`\n    -   `opts.blockTracker`\n\n### getGlobalLock\n\n[index.js:27-32][16]\n\nReturns **[Promise][17]&lt;[Object][14]>** with the key releaseLock (the gloabl mutex)\n\n### getNonceLock\n\n[index.js:48-82][18]\n\n#### Parameters\n\n-   `address`\n\n#### Properties\n\n-   `highestLocallyConfirmed` **[number][19]** A hex string of the highest nonce on a confirmed transaction.\n-   `nextNetworkNonce` **[number][19]** The next nonce suggested by the eth_getTransactionCount method.\n-   `highestSuggested` **[number][19]** The maximum between the other two, the number returned.\n\nthis will return an object with the `nextNonce` `nonceDetails`, and the releaseLock\nNote: releaseLock must be called after adding a signed tx to pending transactions (or discarding).\n\n#### Parameters\n\n-   `address`  {string} the hex string for the address whose nonce we are calculating\n\nReturns **[Promise][17]&lt;NonceDetails>**\n\n\n\n[13]: https://github.com/MetaMask/nonce-tracker/blob/587ee0b25e16543330830e71372e0a9b94c166c4/index.js#L13-L159 \"Source code on GitHub\"\n\n[14]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\n\n[15]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function\n\n[16]: https://github.com/MetaMask/nonce-tracker/blob/587ee0b25e16543330830e71372e0a9b94c166c4/index.js#L27-L32 \"Source code on GitHub\"\n\n[17]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise\n\n[18]: https://github.com/MetaMask/nonce-tracker/blob/587ee0b25e16543330830e71372e0a9b94c166c4/index.js#L48-L82 \"Source code on GitHub\"\n\n[19]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number\n\n","readmeFilename":"README.md"}