diff --git a/CHANGELOG.md b/CHANGELOG.md index 1615a42..b037dea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed +- Remove `@metamask/eth-block-tracker` peer dependency ([#85](https://github.com/MetaMask/nonce-tracker/pull/85)) ## [6.0.1] ### Fixed diff --git a/package.json b/package.json index 0194d4b..911b4b9 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "@metamask/eslint-config-mocha": "^10.0.0", "@metamask/eslint-config-nodejs": "^10.0.0", "@metamask/eslint-config-typescript": "^10.0.0", - "@metamask/eth-block-tracker": "^9.0.3", "@types/node": "^16.18.59", "@typescript-eslint/eslint-plugin": "^5.30.7", "@typescript-eslint/parser": "^5.30.7", @@ -53,9 +52,6 @@ "typescript": "^4.0.7", "xtend": "^4.0.1" }, - "peerDependencies": { - "@metamask/eth-block-tracker": ">=9" - }, "engines": { "node": "^16.20 || ^18.16 || >=20" }, diff --git a/src/NonceTracker.ts b/src/NonceTracker.ts index 51b86f5..f9ac2b6 100644 --- a/src/NonceTracker.ts +++ b/src/NonceTracker.ts @@ -1,9 +1,16 @@ import assert from 'assert'; import { Mutex } from 'async-mutex'; -import type { BlockTracker } from '@metamask/eth-block-tracker'; import { Web3Provider } from '@ethersproject/providers'; +/** + * A minimal "block tracker" type, with just the method used here. This is based upon the + * `BlockTracker` type from `@metamask/eth-block-tracker` v9. + */ +type BlockTracker = { + getLatestBlock: () => Promise; +}; + /** * @property opts.provider - An ethereum provider * @property opts.blockTracker - An instance of @metamask/eth-block-tracker diff --git a/yarn.lock b/yarn.lock index 3da2c53..36ded2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -65,48 +65,6 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/common@npm:^3.2.0": - version: 3.2.0 - resolution: "@ethereumjs/common@npm:3.2.0" - dependencies: - "@ethereumjs/util": ^8.1.0 - crc-32: ^1.2.0 - checksum: cb9cc11f5c868cb577ba611cebf55046e509218bbb89b47ccce010776dafe8256d70f8f43fab238aec74cf71f62601cd5842bc03a83261200802de365732a14b - languageName: node - linkType: hard - -"@ethereumjs/rlp@npm:^4.0.1": - version: 4.0.1 - resolution: "@ethereumjs/rlp@npm:4.0.1" - bin: - rlp: bin/rlp - checksum: 30db19c78faa2b6ff27275ab767646929207bb207f903f09eb3e4c273ce2738b45f3c82169ddacd67468b4f063d8d96035f2bf36f02b6b7e4d928eefe2e3ecbc - languageName: node - linkType: hard - -"@ethereumjs/tx@npm:^4.2.0": - version: 4.2.0 - resolution: "@ethereumjs/tx@npm:4.2.0" - dependencies: - "@ethereumjs/common": ^3.2.0 - "@ethereumjs/rlp": ^4.0.1 - "@ethereumjs/util": ^8.1.0 - ethereum-cryptography: ^2.0.0 - checksum: 87a3f5f2452cfbf6712f8847525a80c213210ed453c211c793c5df801fe35ecef28bae17fadd222fcbdd94277478a47e52d2b916a90a6b30cda21f1e0cdaee42 - languageName: node - linkType: hard - -"@ethereumjs/util@npm:^8.1.0": - version: 8.1.0 - resolution: "@ethereumjs/util@npm:8.1.0" - dependencies: - "@ethereumjs/rlp": ^4.0.1 - ethereum-cryptography: ^2.0.0 - micro-ftch: ^0.3.1 - checksum: 9ae5dee8f12b0faf81cd83f06a41560e79b0ba96a48262771d897a510ecae605eb6d84f687da001ab8ccffd50f612ae50f988ef76e6312c752897f462f3ac08d - languageName: node - linkType: hard - "@ethersproject/abstract-provider@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/abstract-provider@npm:5.7.0" @@ -498,41 +456,6 @@ __metadata: languageName: node linkType: hard -"@metamask/eth-block-tracker@npm:^9.0.3": - version: 9.0.3 - resolution: "@metamask/eth-block-tracker@npm:9.0.3" - dependencies: - "@metamask/eth-json-rpc-provider": ^3.0.2 - "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.1.0 - json-rpc-random-id: ^1.0.1 - pify: ^5.0.0 - checksum: edd3d59a0416752d90c8e2d8c10c31635dbe3eb323fcb054c401528afe4cbbb6a5a85aedd6ffee4a504d9779656bfab027f2274fd95981c90bf56b6f565dbca2 - languageName: node - linkType: hard - -"@metamask/eth-json-rpc-provider@npm:^3.0.2": - version: 3.0.2 - resolution: "@metamask/eth-json-rpc-provider@npm:3.0.2" - dependencies: - "@metamask/json-rpc-engine": ^8.0.2 - "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.3.0 - checksum: 0321eaad6fa205a9d3ddcfaf28e63c05291614893cb2e116151185a4acbd6bb6a508d6e556b3cb8bc4d3caef4bf0a638202d9b6bdc127fbcb81715eb2660a809 - languageName: node - linkType: hard - -"@metamask/json-rpc-engine@npm:^8.0.2": - version: 8.0.2 - resolution: "@metamask/json-rpc-engine@npm:8.0.2" - dependencies: - "@metamask/rpc-errors": ^6.2.1 - "@metamask/safe-event-emitter": ^3.0.0 - "@metamask/utils": ^8.3.0 - checksum: c240d298ad503d93922a94a62cf59f0344b6d6644a523bc8ea3c0f321bea7172b89f2747a5618e2861b2e8152ae5086b76f391a10e4566529faa50b8850c051d - languageName: node - linkType: hard - "@metamask/nonce-tracker@workspace:.": version: 0.0.0-use.local resolution: "@metamask/nonce-tracker@workspace:." @@ -545,7 +468,6 @@ __metadata: "@metamask/eslint-config-mocha": ^10.0.0 "@metamask/eslint-config-nodejs": ^10.0.0 "@metamask/eslint-config-typescript": ^10.0.0 - "@metamask/eth-block-tracker": ^9.0.3 "@types/node": ^16.18.59 "@typescript-eslint/eslint-plugin": ^5.30.7 "@typescript-eslint/parser": ^5.30.7 @@ -563,68 +485,9 @@ __metadata: prettier-plugin-packagejson: ^2.2.11 typescript: ^4.0.7 xtend: ^4.0.1 - peerDependencies: - "@metamask/eth-block-tracker": ">=9" languageName: unknown linkType: soft -"@metamask/rpc-errors@npm:^6.2.1": - version: 6.2.1 - resolution: "@metamask/rpc-errors@npm:6.2.1" - dependencies: - "@metamask/utils": ^8.3.0 - fast-safe-stringify: ^2.0.6 - checksum: a9223c3cb9ab05734ea0dda990597f90a7cdb143efa0c026b1a970f2094fe5fa3c341ed39b1e7623be13a96b98fb2c697ef51a2e2b87d8f048114841d35ee0a9 - languageName: node - linkType: hard - -"@metamask/safe-event-emitter@npm:^3.0.0": - version: 3.0.0 - resolution: "@metamask/safe-event-emitter@npm:3.0.0" - checksum: 8dc58a76f9f75bf2405931465fc311c68043d851e6b8ebe9f82ae339073a08a83430dba9338f8e3adc4bfc8067607125074bcafa32baee3a5157f42343dc89e5 - languageName: node - linkType: hard - -"@metamask/utils@npm:^8.1.0, @metamask/utils@npm:^8.3.0": - version: 8.4.0 - resolution: "@metamask/utils@npm:8.4.0" - dependencies: - "@ethereumjs/tx": ^4.2.0 - "@noble/hashes": ^1.3.1 - "@scure/base": ^1.1.3 - "@types/debug": ^4.1.7 - debug: ^4.3.4 - pony-cause: ^2.1.10 - semver: ^7.5.4 - superstruct: ^1.0.3 - uuid: ^9.0.1 - checksum: b0397e97bac7192f6189a8625a2dfcb56d3c2cf4dd2cb3d4e012a7e9786f04f59f6917805544bc131a6dacd2c8344e237ae43ad47429bb5eb35c6cf1248440b4 - languageName: node - linkType: hard - -"@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": - version: 1.1.0 - resolution: "@noble/curves@npm:1.1.0" - dependencies: - "@noble/hashes": 1.3.1 - checksum: 2658cdd3f84f71079b4e3516c47559d22cf4b55c23ac8ee9d2b1f8e5b72916d9689e59820e0f9d9cb4a46a8423af5b56dc6bb7782405c88be06a015180508db5 - languageName: node - linkType: hard - -"@noble/hashes@npm:1.3.1": - version: 1.3.1 - resolution: "@noble/hashes@npm:1.3.1" - checksum: 7fdefc0f7a0c1ec27acc6ff88841793e3f93ec4ce6b8a6a12bfc0dd70ae6b7c4c82fe305fdfeda1735d5ad4a9eebe761e6693b3d355689c559e91242f4bc95b1 - languageName: node - linkType: hard - -"@noble/hashes@npm:^1.3.1, @noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.1": - version: 1.3.2 - resolution: "@noble/hashes@npm:1.3.2" - checksum: fe23536b436539d13f90e4b9be843cc63b1b17666a07634a2b1259dded6f490be3d050249e6af98076ea8f2ea0d56f578773c2197f2aa0eeaa5fba5bc18ba474 - languageName: node - linkType: hard - "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -741,34 +604,6 @@ __metadata: languageName: node linkType: hard -"@scure/base@npm:^1.1.3, @scure/base@npm:~1.1.0": - version: 1.1.3 - resolution: "@scure/base@npm:1.1.3" - checksum: 1606ab8a4db898cb3a1ada16c15437c3bce4e25854fadc8eb03ae93cbbbac1ed90655af4b0be3da37e12056fef11c0374499f69b9e658c9e5b7b3e06353c630c - languageName: node - linkType: hard - -"@scure/bip32@npm:1.3.1": - version: 1.3.1 - resolution: "@scure/bip32@npm:1.3.1" - dependencies: - "@noble/curves": ~1.1.0 - "@noble/hashes": ~1.3.1 - "@scure/base": ~1.1.0 - checksum: 394d65f77a40651eba21a5096da0f4233c3b50d422864751d373fcf142eeedb94a1149f9ab1dbb078086dab2d0bc27e2b1afec8321bf22d4403c7df2fea5bfe2 - languageName: node - linkType: hard - -"@scure/bip39@npm:1.2.1": - version: 1.2.1 - resolution: "@scure/bip39@npm:1.2.1" - dependencies: - "@noble/hashes": ~1.3.0 - "@scure/base": ~1.1.0 - checksum: c5bd6f1328fdbeae2dcdd891825b1610225310e5e62a4942714db51066866e4f7bef242c7b06a1b9dcc8043a4a13412cf5c5df76d3b10aa9e36b82e9b6e3eeaa - languageName: node - linkType: hard - "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -776,15 +611,6 @@ __metadata: languageName: node linkType: hard -"@types/debug@npm:^4.1.7": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" - dependencies: - "@types/ms": "*" - checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 - languageName: node - linkType: hard - "@types/glob@npm:^7.1.1": version: 7.1.4 resolution: "@types/glob@npm:7.1.4" @@ -816,13 +642,6 @@ __metadata: languageName: node linkType: hard -"@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a - languageName: node - linkType: hard - "@types/node@npm:*, @types/node@npm:^16.18.59": version: 16.18.59 resolution: "@types/node@npm:16.18.59" @@ -1507,15 +1326,6 @@ __metadata: languageName: node linkType: hard -"crc-32@npm:^1.2.0": - version: 1.2.2 - resolution: "crc-32@npm:1.2.2" - bin: - crc32: bin/crc32.njs - checksum: ad2d0ad0cbd465b75dcaeeff0600f8195b686816ab5f3ba4c6e052a07f728c3e70df2e3ca9fd3d4484dc4ba70586e161ca5a2334ec8bf5a41bf022a6103ff243 - languageName: node - linkType: hard - "create-hash@npm:^1.1.0, create-hash@npm:^1.1.2": version: 1.2.0 resolution: "create-hash@npm:1.2.0" @@ -2133,18 +1943,6 @@ __metadata: languageName: node linkType: hard -"ethereum-cryptography@npm:^2.0.0": - version: 2.1.2 - resolution: "ethereum-cryptography@npm:2.1.2" - dependencies: - "@noble/curves": 1.1.0 - "@noble/hashes": 1.3.1 - "@scure/bip32": 1.3.1 - "@scure/bip39": 1.2.1 - checksum: 2e8f7b8cc90232ae838ab6a8167708e8362621404d26e79b5d9e762c7b53d699f7520aff358d9254de658fcd54d2d0af168ff909943259ed27dc4cef2736410c - languageName: node - linkType: hard - "ethereumjs-util@npm:^6.1.0": version: 6.1.0 resolution: "ethereumjs-util@npm:6.1.0" @@ -2246,13 +2044,6 @@ __metadata: languageName: node linkType: hard -"fast-safe-stringify@npm:^2.0.6": - version: 2.1.1 - resolution: "fast-safe-stringify@npm:2.1.1" - checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d - languageName: node - linkType: hard - "fastq@npm:^1.6.0": version: 1.9.0 resolution: "fastq@npm:1.9.0" @@ -3193,13 +2984,6 @@ __metadata: languageName: node linkType: hard -"json-rpc-random-id@npm:^1.0.1": - version: 1.0.1 - resolution: "json-rpc-random-id@npm:1.0.1" - checksum: fcd2e884193a129ace4002bd65a86e9cdb206733b4693baea77bd8b372cf8de3043fbea27716a2c9a716581a908ca8d978d9dfec4847eb2cf77edb4cf4b2252c - languageName: node - linkType: hard - "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -3372,13 +3156,6 @@ __metadata: languageName: node linkType: hard -"micro-ftch@npm:^0.3.1": - version: 0.3.1 - resolution: "micro-ftch@npm:0.3.1" - checksum: 0e496547253a36e98a83fb00c628c53c3fb540fa5aaeaf718438873785afd193244988c09d219bb1802984ff227d04938d9571ef90fe82b48bd282262586aaff - languageName: node - linkType: hard - "micromatch@npm:^4.0.4": version: 4.0.8 resolution: "micromatch@npm:4.0.8" @@ -3967,20 +3744,6 @@ __metadata: languageName: node linkType: hard -"pify@npm:^5.0.0": - version: 5.0.0 - resolution: "pify@npm:5.0.0" - checksum: 443e3e198ad6bfa8c0c533764cf75c9d5bc976387a163792fb553ffe6ce923887cf14eebf5aea9b7caa8eab930da8c33612990ae85bd8c2bc18bedb9eae94ecb - languageName: node - linkType: hard - -"pony-cause@npm:^2.1.10": - version: 2.1.10 - resolution: "pony-cause@npm:2.1.10" - checksum: 8b61378f213e61056312dc274a1c79980154e9d864f6ad86e0c8b91a50d3ce900d430995ee24147c9f3caa440dfe7d51c274b488d7f033b65b206522536d7217 - languageName: node - linkType: hard - "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -4296,7 +4059,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.4": +"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -4617,13 +4380,6 @@ __metadata: languageName: node linkType: hard -"superstruct@npm:^1.0.3": - version: 1.0.3 - resolution: "superstruct@npm:1.0.3" - checksum: 761790bb111e6e21ddd608299c252f3be35df543263a7ebbc004e840d01fcf8046794c274bcb351bdf3eae4600f79d317d085cdbb19ca05803a4361840cc9bb1 - languageName: node - linkType: hard - "supports-color@npm:8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" @@ -4809,15 +4565,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 - languageName: node - linkType: hard - "validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4"