From 754e19581d8f1fdc383b350cefcfdbbca75266dd Mon Sep 17 00:00:00 2001 From: djordjekovac Date: Thu, 20 Oct 2022 14:43:01 +0200 Subject: [PATCH 1/8] Added better handling of unknown command on replay (#2133) --- src/commands/command-executor.js | 15 ++++++++++++++- src/commands/command-resolver.js | 3 ++- src/commands/common/commands-cleaner-command.js | 1 + src/constants/constants.js | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/commands/command-executor.js b/src/commands/command-executor.js index 0a15270b72..24b00b32bb 100644 --- a/src/commands/command-executor.js +++ b/src/commands/command-executor.js @@ -93,6 +93,13 @@ class CommandExecutor { } const handler = this.commandResolver.resolve(command.name); + if (!handler) { + this.logger.warn(`Command '${command.name}' will not be executed.`); + await this._update(command, { + status: COMMAND_STATUS.UNKNOWN, + }); + return; + } if (command.deadline_at && now > command.deadline_at) { this.logger.warn(`Command ${command.name} and ID ${command.id} is too late...`); await this._update(command, { @@ -231,6 +238,10 @@ class CommandExecutor { async _startDefaultCommand(name) { await this._delete(name); const handler = this.commandResolver.resolve(name); + if (!handler) { + this.logger.warn(`Command '${name}' will not be executed.`); + return; + } await this.add(handler.default(), DEFAULT_COMMAND_DELAY_IN_MILLS, true); if (this.verboseLoggingEnabled) { this.logger.trace(`Permanent command ${name} created.`); @@ -349,7 +360,9 @@ class CommandExecutor { } if (!command.data) { const commandInstance = this.commandResolver.resolve(command.name); - command.data = commandInstance.pack(command.data); + if (commandInstance) { + command.data = commandInstance.pack(command.data); + } } command.status = COMMAND_STATUS.PENDING; const opts = {}; diff --git a/src/commands/command-resolver.js b/src/commands/command-resolver.js index 4d2fb8229d..881afdc8a0 100644 --- a/src/commands/command-resolver.js +++ b/src/commands/command-resolver.js @@ -4,6 +4,7 @@ class CommandResolver { constructor(ctx) { this.ctx = ctx; + this.logger = ctx.logger; } /** @@ -15,7 +16,7 @@ class CommandResolver { try { return this.ctx[`${name}`]; } catch (e) { - throw new Error(`No handler defined for command '${name}'`); + this.logger.warn(`No handler defined for command '${name}'`); } } } diff --git a/src/commands/common/commands-cleaner-command.js b/src/commands/common/commands-cleaner-command.js index dcc887e7ac..4d1fc70686 100644 --- a/src/commands/common/commands-cleaner-command.js +++ b/src/commands/common/commands-cleaner-command.js @@ -20,6 +20,7 @@ class CommandsCleanerCommand extends Command { COMMAND_STATUS.COMPLETED, COMMAND_STATUS.FAILED, COMMAND_STATUS.EXPIRED, + COMMAND_STATUS.UNKNOWN, ]); return Command.repeat(); } diff --git a/src/constants/constants.js b/src/constants/constants.js index 16bab53ee4..ea35bc000d 100644 --- a/src/constants/constants.js +++ b/src/constants/constants.js @@ -223,6 +223,7 @@ export const FINALIZED_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000; export const COMMAND_STATUS = { FAILED: 'FAILED', EXPIRED: 'EXPIRED', + UNKNOWN: 'UNKNOWN', STARTED: 'STARTED', PENDING: 'PENDING', COMPLETED: 'COMPLETED', From 8baf198b8bd758e718b265d45a250dff358d221b Mon Sep 17 00:00:00 2001 From: zeroxbt <89495162+zeroxbt@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:32:04 +0200 Subject: [PATCH 2/8] increase gas price for parachain transactions (#2135) --- .../implementation/ot-parachain/ot-parachain-service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js index 69e6f1ae8f..612af2511c 100644 --- a/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js +++ b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js @@ -101,7 +101,7 @@ class OtParachainService extends Web3Service { if (this.config.gasPriceOracleLink) return super.getGasPrice(); try { - return this.web3.eth.getGasPrice(); + return (await this.web3.eth.getGasPrice()) * 1000; } catch (error) { return undefined; } From b26068c5956c6b265ae830396313086f7c4b6dd7 Mon Sep 17 00:00:00 2001 From: zeroxbt <89495162+zeroxbt@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:42:34 +0200 Subject: [PATCH 3/8] remove invalid data path test (#2136) --- test/bdd/features/publish-errors.feature | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/bdd/features/publish-errors.feature b/test/bdd/features/publish-errors.feature index e15df04d52..c64fc470e8 100644 --- a/test/bdd/features/publish-errors.feature +++ b/test/bdd/features/publish-errors.feature @@ -3,6 +3,14 @@ Feature: Publish errors test Given the blockchain is set up And 1 bootstrap is running + #@publish-errors + #Scenario: Publish on a node with invalid data path + #Given I setup 3 nodes + #And I setup node 4 with appDataPath set to \0 + #And I wait for 10 seconds + #And I call publish on node 4 with validAssertion + #Then Last PUBLISH operation finished with status: PublishRouteError + @publish-errors Scenario: Publish on a node with minimum replication factor greater than the number of nodes Given I setup 3 nodes @@ -18,14 +26,6 @@ Feature: Publish errors test And I call publish on ot-node 4 directly with validPublishRequestBody And I wait for last publish to finalize Then Last PUBLISH operation finished with status: PublishValidateAssertionError - - @publish-errors - Scenario: Publish on a node with invalid data path - Given I setup 3 nodes - And I setup node 4 with appDataPath set to \0 - And I wait for 10 seconds - And I call publish on node 4 with validAssertion - Then Last PUBLISH operation finished with status: PublishRouteError # # From f18e9076ed30d3418a5d7f4b3cb462534bf780e9 Mon Sep 17 00:00:00 2001 From: zeroxbt <89495162+zeroxbt@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:58:36 +0200 Subject: [PATCH 4/8] revert libp2p updates (#2134) * revert libp2p update, add protocol selection * save libp2p private key in different file * add try catch to migration * remove try catch from migration * update libp2p config --- ot-node.js | 9 + package-lock.json | 5587 +++++++---------- package.json | 26 +- src/commands/common/send-telemetry-command.js | 2 +- .../protocols/common/find-nodes-command.js | 92 +- .../common/protocol-message-command.js | 33 - .../protocol-schedule-messages-command.js | 2 +- src/constants/constants.js | 4 + src/migration/base-migration.js | 11 +- .../network-private-key-migration.js | 20 + src/modules/base-module-manager.js | 1 + .../network/implementation/libp2p-service.js | 386 +- src/modules/network/network-module-manager.js | 4 +- src/service/get-service.js | 11 +- 14 files changed, 2460 insertions(+), 3728 deletions(-) create mode 100644 src/migration/network-private-key-migration.js diff --git a/ot-node.js b/ot-node.js index 8dbad2d590..0aa16dd93b 100644 --- a/ot-node.js +++ b/ot-node.js @@ -9,6 +9,7 @@ import DependencyInjection from './src/service/dependency-injection.js'; import Logger from './src/logger/logger.js'; import { MIN_NODE_VERSION } from './src/constants/constants.js'; import FileService from './src/service/file-service.js'; +import NetworkPrivateKeyMigration from './src/migration/network-private-key-migration.js'; const require = createRequire(import.meta.url); const pjson = require('./package.json'); @@ -23,6 +24,14 @@ class OTNode { async start() { await this.removeUpdateFile(); + const migrationManager = new NetworkPrivateKeyMigration( + 'NetworkPrivateKeyMigration', + this.logger, + this.config, + ); + if (!(await migrationManager.migrationAlreadyExecuted())) { + await migrationManager.migrate(); + } this.logger.info(' ██████╗ ████████╗███╗ ██╗ ██████╗ ██████╗ ███████╗'); this.logger.info('██╔═══██╗╚══██╔══╝████╗ ██║██╔═══██╗██╔══██╗██╔════╝'); diff --git a/package-lock.json b/package-lock.json index f0528d8347..b750e4a367 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,17 +9,8 @@ "version": "6.0.0-beta.2.2.7", "license": "ISC", "dependencies": { - "@chainsafe/libp2p-noise": "^8.0.1", "@comunica/query-sparql": "^2.4.3", - "@libp2p/bootstrap": "^2.0.0", - "@libp2p/crypto": "^1.0.4", - "@libp2p/mplex": "^5.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id-factory": "^1.0.18", - "@libp2p/tcp": "^3.1.2", - "@multiformats/multiaddr": "^11.0.1", "@polkadot/api": "^9.3.2", - "@tracelabs/kad-dht": "3.0.6", "app-root-path": "^3.1.0", "assertion-tools": "^1.0.9", "async": "^3.2.4", @@ -37,24 +28,29 @@ "graphdb": "^2.0.2", "ip": "^1.1.8", "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-length-prefixed": "^8.0.2", + "it-concat": "^2.0.0", + "it-length-prefixed": "^5.0.3", "it-map": "^1.0.6", - "it-merge": "^1.0.4", - "it-pipe": "^2.0.4", + "it-pipe": "^1.1.0", "it-sort": "^1.0.1", "it-take": "^1.0.2", "jsonld": "^8.1.0", "jsonschema": "^1.4.1", "jsonwebtoken": "^8.5.1", "keccak256": "^1.0.6", - "libp2p": "^0.38.0", + "libp2p": "^0.32.4", + "libp2p-bootstrap": "^0.13.0", + "libp2p-kad-dht": "^0.24.2", + "libp2p-mplex": "^0.10.7", + "libp2p-noise": "^4.0.0", + "libp2p-tcp": "^0.17.2", "merkletreejs": "^0.2.32", "ms": "^2.1.3", + "multiaddr": "^10.0.0", "multiformats": "^9.8.1", "mysql2": "^2.3.3", "p-iteration": "^1.1.8", + "peer-id": "^0.15.3", "pino": "^8.4.2", "pino-pretty": "^9.1.0", "rc": "^1.2.8", @@ -98,74 +94,6 @@ "npm": ">=8.0.0" } }, - "node_modules/@achingbrain/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@achingbrain/ip-address/node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "node_modules/@achingbrain/ip-address/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/@achingbrain/nat-port-mapper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", - "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", - "dependencies": { - "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.7", - "p-defer": "^4.0.0", - "p-timeout": "^5.0.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@achingbrain/nat-port-mapper/node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@achingbrain/ssdp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", - "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", - "dependencies": { - "event-iterator": "^2.0.0", - "freeport-promise": "^2.0.0", - "merge-options": "^3.0.4", - "uuid": "^8.3.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -623,59 +551,6 @@ "node": ">=6.9.0" } }, - "node_modules/@chainsafe/libp2p-noise": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-8.0.1.tgz", - "integrity": "sha512-mr1/CMTBIfraqTY4OWBdmJ2v+0+D89vbIp1nJTHz64oDPRgU0Ah8wb7K5hgs0erU8aYMkgMtbhXeouhJK3A7wA==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-connection-encrypter": "^2.0.1", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.8", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "it-length-prefixed": "^8.0.2", - "it-pair": "^2.0.2", - "it-pb-stream": "^2.0.2", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.3.2", - "uint8arrays": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/it-pair": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", - "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", - "dependencies": { - "it-stream-types": "^1.0.3", - "p-defer": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "license": "MIT", @@ -3963,14 +3838,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -4020,935 +3887,6 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@libp2p/bootstrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-2.0.0.tgz", - "integrity": "sha512-95ekDzxfBm8fHHxJY5xJDPcSZQMuwIzJcHogSvw3+REw/LBPmpHUtTDVfx2BcMdXWpXrJUWVZzCB0zS/rCD9dg==", - "dependencies": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.9", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.7" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/bootstrap/node_modules/@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/bootstrap/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/bootstrap/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/components": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-2.1.0.tgz", - "integrity": "sha512-9xK1pauZiptaR0eJFn1LcOr/hwosU76IjPOqTkRVZVjSStIWmBl+Njrn4qK05Jizopf0cIUnpt/8A6YWjM4D7g==", - "dependencies": { - "@libp2p/interface-address-manager": "^1.0.2", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-connection-manager": "^1.1.0", - "@libp2p/interface-content-routing": "^1.0.2", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-metrics": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.1", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/interface-pubsub": "^2.1.0", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interface-transport": "^1.0.3", - "@libp2p/interfaces": "^3.0.3", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/connection": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/connection/-/connection-4.0.1.tgz", - "integrity": "sha512-YT+5cYUsG5H5oaGFJyJSuuKdIdBQ4LQQljNvkuO5REiMvviAiWfiF4CMJIQvDW6m7F+s4qpxDHMYuZPJJw2jzw==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/connection/node_modules/@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/connection/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/connection/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/crypto": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.4.tgz", - "integrity": "sha512-3hHZvqi+vI8YoTHE+0u8nA5SYGPLZRLMvbgXQoAn0IyPjez66Taaxym/3p3Duf9QkFlvJu95nzpNzv0OdHs9Yw==", - "dependencies": { - "@libp2p/interface-keys": "^1.0.2", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "node-forge": "^1.1.0", - "protons-runtime": "^3.1.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/crypto/node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/@libp2p/interface-address-manager": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz", - "integrity": "sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw==", - "dependencies": { - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.2.tgz", - "integrity": "sha512-38R2GQ6BCOtwMi5uWU5MLr+xfEpRmVK9gqOp7jNx+6T7TVn8ji4725XLXNfpzprbOrzZkqf2iER84s8+yX4pMA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-encrypter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-2.0.1.tgz", - "integrity": "sha512-GtqsNJuL1q7LWX3z41t9eFFFrlLSmMH92E0rupoXeFx1dJ8Gs/Zy8b6lZro96Ld6rjU1CeZa87SmYeqQQeHRmw==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.1.1.tgz", - "integrity": "sha512-sPBHXNLqYCYl/fo4hdseRJm/Z9DWgPulegCKI5JUjaiqrcdmAHDOnIHIKWP0i+N+yNR3y7nUBWp5QT1pqpvK7Q==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-content-routing": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-1.0.2.tgz", - "integrity": "sha512-Ue1X8XrZ4ymTMQk/GWom/EKfPB5Lu7zy33ohjSix26Da/HbBvkXBdnYGDj485vxSOZGZRqeBhh21nCVjD/yLyg==", - "dependencies": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-dht": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-dht/-/interface-dht-1.0.1.tgz", - "integrity": "sha512-EToxQznHUnD9frWoHwq8DUaOa7RZ2qoo6beb1aWdQrEJsEdUBi62FHh9qrLkrL+E4W3rkl2+WrhSP6/iHxZZwQ==", - "dependencies": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-keys": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.3.tgz", - "integrity": "sha512-K8/HlRl/swbVTWuGHNHF28EytszYfUhKgUHfv8CdbMk9ZA/bgO4uU+d9rcrg/Dhw3511U3aRz2bwl2psn6rJfg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-metrics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-discovery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.1.tgz", - "integrity": "sha512-ZqBhpX7fR3ROYQaGYV47YhyTJJzFDzyyEIsQ7NnDuG3KhcQb2PtocnN0sy1Ozm784M0oYveM/HjfuNxxcOwdYg==", - "dependencies": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-id": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.0.4.tgz", - "integrity": "sha512-VRnE0MqmS1kN43hyKCEdkhz0gciuDML7hpL3p8zDm0LnveNMLJsR+/VSUaugCi/muOzLaLk26WffKWbMYfnGfA==", - "dependencies": { - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-info": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.3.tgz", - "integrity": "sha512-QKybxfp/NmDGDMkgf/CTt4fU03ajZnldHr9TYg5wMkJrnVaaHbhDTYBg5YWt+iOH1mgR89/dpKv/Na0ZE5sPIA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@multiformats/multiaddr": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-routing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.1.tgz", - "integrity": "sha512-MKx2g0mIUI6qNuLv3xApKXR2ZrO9CUTT9ZPL0gvRlhpFCXovEkdWJ1h8KnmkR7tGPxKHt2bsCCJ8gqUaFeNstA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-peer-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.2.tgz", - "integrity": "sha512-ZjE9AkDtjz4R+SppCgZ66oko7Z9pDsdFk1lbba0hTPA2i0uuWdTYep7bZ3RvKot0Q2UrWg8ySL/30pW+Wp70sA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", - "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-pushable": "^3.0.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@libp2p/interface-record": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-2.0.1.tgz", - "integrity": "sha512-RqF5jKukI8v3Q8MZb4d8/UVjg0OXbl0R8ErWi/LKf+uklA8kTA7rT4FQXFUBycxrkFmEu/tJnW+R1/4fwRwZVg==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-registrar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-2.0.3.tgz", - "integrity": "sha512-YA/A+o+166/+noXxMFXvZdg9soZSZX2EPOlUwnGXZWR7J5B2sxyP76QxHWXL5npsEMj7suP+Rjb/GJYGz7rDyg==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-stream-muxer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-2.0.2.tgz", - "integrity": "sha512-BcLsV8ZVr34G32u/w4pgSAgFju9CTuBB9OJwgX6ugasYf6LtJ0a3m5Kwddy79lvvM/gBvVv/McpCr4mPxP4WWg==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-transport": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz", - "integrity": "sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interfaces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.0.3.tgz", - "integrity": "sha512-8IIxw7TKpaYTtVfZN3jePLlm/E/VzqPpqerN+jhA+1s86akRSeyxVBYi3W9SWDSf0oIauHJSDE8KNxLceAfeag==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.1.tgz", - "integrity": "sha512-Mtj7ImjRYbaANuT53QRqc7ooBYpWieLo7KbqYYGas5O2AWQeOu/zyGBMM35WbWIo7sMuhCas9XBPJdFOR7A05w==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.2", - "debug": "^4.3.3", - "interface-datastore": "^7.0.0", - "multiformats": "^9.6.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-5.2.2.tgz", - "integrity": "sha512-e0EVsOYMiXGiOkLVsGkhg9J/7SWVWMGHhCBvEH4N+s07UEBH/fl+8wgNFyMb8SrdAD2CUP4yaULAMRgUqY4j4Q==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-stream-muxer": "^2.0.0", - "@libp2p/logger": "^2.0.0", - "@libp2p/tracked-map": "^2.0.0", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "err-code": "^3.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.4", - "rate-limiter-flexible": "^2.3.9", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/mplex/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@libp2p/multistream-select": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-3.0.0.tgz", - "integrity": "sha512-l7NFJfq6J86wyM/F0agf45CX/4BLgm9Ork5pfHuz8E+z0F7s+i+gWZH8Pk1CIrIfOpMVJvEtJCnRcjJnDAcv2A==", - "dependencies": { - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^4.0.1", - "it-length-prefixed": "^8.0.2", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.3.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", - "dependencies": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "node_modules/@libp2p/multistream-select/node_modules/it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", - "dependencies": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/multistream-select/node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/peer-collections": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-2.2.0.tgz", - "integrity": "sha512-fLHWRms2aiSplZcTfXz6bLGZ62f1jfcW3EkS/TweVRpbWpzbtkW+V1CKkhlF3Qc4pJl7GTA5HAfPWIrVDvBYag==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/peer-id": "^1.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.15.tgz", - "integrity": "sha512-Y33JLEfsLmLUjuC2nhQ2lBXP6PIsR892gSsNy4Vd7oILkuRhjPouIojP9BbME0m9bhVbAws+Zh9NBKtp7UH7wA==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.6.3", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-id-factory": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-1.0.18.tgz", - "integrity": "sha512-x7lyPrfF4kkMj6az+h1sq5L6ifTvZt2exKi8yS6/Gi/hT8rfqXROdBDtanMjJivIFlzVKJyZdfW5f5RK9Av3iQ==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/peer-id": "^1.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-record": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-4.0.2.tgz", - "integrity": "sha512-r1arc73ADcLd9sESNy7bDHPAsv3JYvIV7kXjB13wQJAQ1oeu9e0I6f1MAIWt4ZukNAiRD8gdlrRvNG63AAZfOg==", - "dependencies": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-record": "^2.0.1", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/utils": "^3.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8-varint": "^1.0.2", - "uint8arraylist": "^2.1.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-record/node_modules/@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-record/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/peer-record/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/peer-store": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-3.1.3.tgz", - "integrity": "sha512-W2Q6l3nk+SwI45busDuSgGgKs9Wz4YTvf2DojBVkaqP1m+32hsjngRYNW63kaexJswnIBvb3uFqnrlyf9plgKg==", - "dependencies": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-peer-store": "^1.1.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.0", - "@libp2p/peer-record": "^4.0.1", - "@multiformats/multiaddr": "^10.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "mortice": "^3.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-store/node_modules/@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/peer-store/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/peer-store/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/record": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-2.0.2.tgz", - "integrity": "sha512-JmkV8uqn7BFQ1Ic7nVZOWHJJqo/JMDhTOJiMU94Ypsc3TwHnpmYXRiWpCoGkGlj8kmZkMtSiydl/OpfVXdR10g==", - "dependencies": { - "@libp2p/interface-dht": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-3.1.2.tgz", - "integrity": "sha512-b2xrzmAx0ktlgzsSgaqeHjtnVNzZeYPZPtgjbGub9zEWHZFuN4XER9XppdCMbvQw/68RHufuSQu8PEDMv5l4VQ==", - "dependencies": { - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-transport": "^1.0.4", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.0", - "@libp2p/utils": "^3.0.2", - "@multiformats/mafmt": "^11.0.3", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "stream-to-it": "^0.2.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp/node_modules/@multiformats/multiaddr": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.1.tgz", - "integrity": "sha512-6EAZPs0tvdSYogxnbA9M2y3YHUUFg3nJ+vDKmqodRoBMdT0cio67eE3WMAGUgRolijPFOORWcry/tX0srTnTPA==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tcp/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/tcp/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/topology": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/topology/-/topology-3.0.1.tgz", - "integrity": "sha512-MUGwu+oEiaQElkHtYF7VfsNTo5GS6AQkNE69lg0Enb1AH66I2UivZPaVhT3s2y6kXPU2W4jkmz9HzkLmcKLKuw==", - "dependencies": { - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/logger": "^2.0.1", - "err-code": "^3.0.1", - "it-all": "^1.0.6" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/tracked-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz", - "integrity": "sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA==", - "dependencies": { - "@libp2p/interface-metrics": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.2.tgz", - "integrity": "sha512-/+mwCEd1o1sko3fYkVfy9pDT3Ks+KszR4Y3fb3M3/UCETDituvqZKHHM4wyTJsFlrFrohbtYlNvWhJ7Pej3X5g==", - "dependencies": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1", - "uint8arraylist": "^2.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/@multiformats/multiaddr": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.0.tgz", - "integrity": "sha512-NfOx/RF7TmGeCiQ5rmpvU7Ny7VKfmIG2jP2XSebTCv78vGuSRQ1YF+5UEKWft2Kjhtj1Xaq7dvgB9SeLp+BYSw==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/utils/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@libp2p/utils/node_modules/is-loopback-addr": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz", - "integrity": "sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==" - }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -5007,72 +3945,22 @@ "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", "dev": true }, - "node_modules/@multiformats/mafmt": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-11.0.3.tgz", - "integrity": "sha512-DvCQeZJgaC4kE3BLqMuW3gQkNAW14Z7I+yMt30Ze+wkfHkWSp+bICcHGihhtgfzYCumHA/vHlJ9n54mrCcmnvQ==", - "dependencies": { - "@multiformats/multiaddr": "^11.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/multiaddr": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.1.tgz", - "integrity": "sha512-6EAZPs0tvdSYogxnbA9M2y3YHUUFg3nJ+vDKmqodRoBMdT0cio67eE3WMAGUgRolijPFOORWcry/tX0srTnTPA==", - "dependencies": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@multiformats/multiaddr/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@multiformats/multiaddr/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", + "node_modules/@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.0.0" } }, - "node_modules/@noble/ed25519": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.0.tgz", - "integrity": "sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, "node_modules/@noble/hashes": { "version": "1.1.2", "funding": [ @@ -6045,73 +4933,6 @@ "node": ">=10.17" } }, - "node_modules/@tracelabs/kad-dht": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@tracelabs/kad-dht/-/kad-dht-3.0.6.tgz", - "integrity": "sha512-oop4bDl9CGZbmfKmIwwC7HH7raVNn0O/RFlIpxhxNoVCwCu/KOfdYNBtIQeNp/IdgkIyAgqO2+j41QVJNgU5Vw==", - "dependencies": { - "@libp2p/components": "^2.0.4", - "@libp2p/crypto": "^1.0.4", - "@libp2p/interface-address-manager": "^1.0.3", - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-connection-manager": "^1.1.1", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-peer-discovery": "^1.0.1", - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-peer-info": "^1.0.3", - "@libp2p/interface-peer-store": "^1.2.2", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.1", - "@libp2p/peer-collections": "^2.2.0", - "@libp2p/peer-id": "^1.1.15", - "@libp2p/record": "^2.0.2", - "@libp2p/topology": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^8.0.1", - "err-code": "^3.0.1", - "hashlru": "^2.3.0", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-first": "^1.0.6", - "it-length": "^1.0.3", - "it-length-prefixed": "^8.0.2", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-parallel": "^2.0.1", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "it-take": "^1.0.2", - "k-bucket": "^5.1.0", - "multiformats": "^9.6.3", - "p-defer": "^4.0.0", - "p-queue": "^7.2.0", - "private-ip": "^2.3.3", - "protons-runtime": "^3.1.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@tracelabs/kad-dht/node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@truffle/hdwallet": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.0.tgz", @@ -6784,10 +5605,20 @@ "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, "node_modules/@types/lru-cache": { "version": "5.1.1", "license": "MIT" }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "node_modules/@types/minimist": { "version": "1.2.2", "license": "MIT" @@ -6846,9 +5677,9 @@ } }, "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/secp256k1": { "version": "4.0.3", @@ -6920,6 +5751,11 @@ "dev": true, "license": "ISC" }, + "node_modules/@vascosantos/moving-average": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + }, "node_modules/abort-controller": { "version": "3.0.0", "license": "MIT", @@ -6930,15 +5766,6 @@ "node": ">=6.5" } }, - "node_modules/abortable-iterator": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", - "integrity": "sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^1.0.3" - } - }, "node_modules/abortcontroller-polyfill": { "version": "1.7.3", "license": "MIT" @@ -6985,7 +5812,6 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", @@ -7077,11 +5903,6 @@ "dev": true, "license": "MIT" }, - "node_modules/any-signal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", - "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" - }, "node_modules/anymatch": { "version": "3.1.2", "dev": true, @@ -7537,6 +6358,24 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/blakejs": { "version": "1.1.1", "license": "CC0-1.0" @@ -7823,18 +6662,6 @@ "node": ">=10.16.0" } }, - "node_modules/byte-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", - "integrity": "sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==", - "dependencies": { - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -8205,7 +7032,6 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8360,20 +7186,6 @@ "node": ">=0.8" } }, - "node_modules/clone-regexp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", - "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", - "dependencies": { - "is-regexp": "^3.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/clone-response": { "version": "1.0.3", "license": "MIT", @@ -8543,17 +7355,6 @@ "node": ">= 0.6" } }, - "node_modules/convert-hrtime": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", - "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/convert-source-map": { "version": "1.8.0", "dev": true, @@ -8802,34 +7603,6 @@ "node": ">= 12" } }, - "node_modules/datastore-core": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.1.tgz", - "integrity": "sha512-FSzrX8fsYUfbA1dq2DvVr9+CYMRAVDKSVe+wGY+Ipiv7ikUDpZZI0htC/o6Fbg0yDxiGDXGOmEIsS5RBb5NchQ==", - "dependencies": { - "@libp2p/logger": "^2.0.0", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-take": "^1.0.1", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/datastore-core/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, "node_modules/dateformat": { "version": "4.6.3", "license": "MIT", @@ -9066,20 +7839,6 @@ "web3": "^1.7.3" } }, - "node_modules/dns-over-http-resolver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.0.tgz", - "integrity": "sha512-eb8RGy6k54JdD7Rjw8g65y1MyA4z3m3IIYh7uazkgZuKIdFn8gYt8dydMm3op+2UshDdk9EexrXcDluKNY/CDg==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^4.0.2", - "receptacle": "^1.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "license": "Apache-2.0", @@ -9239,6 +7998,17 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "node_modules/electron-fetch": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", + "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "dependencies": { + "encoding": "^0.1.13" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.211", "dev": true, @@ -9280,8 +8050,6 @@ "node_modules/encoding": { "version": "0.1.13", "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -9429,6 +8197,14 @@ "version": "4.2.8", "license": "MIT" }, + "node_modules/es6-promisify": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz", + "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/es6-symbol": { "version": "3.1.3", "license": "ISC", @@ -10667,11 +9443,6 @@ "npm": ">=3" } }, - "node_modules/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, "node_modules/event-target-shim": { "version": "5.0.1", "license": "MIT", @@ -11061,6 +9832,11 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "node_modules/fill-range": { "version": "7.0.1", "license": "MIT", @@ -11165,14 +9941,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/find-cache-dir/node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -11323,15 +10091,6 @@ "node": ">= 0.6" } }, - "node_modules/freeport-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", - "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -11471,17 +10230,6 @@ "version": "1.1.1", "license": "MIT" }, - "node_modules/function-timeout": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", - "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/function.prototype.name": { "version": "1.1.5", "license": "MIT", @@ -12085,11 +10833,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.0.tgz", - "integrity": "sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg==" - }, "node_modules/get-package-type": { "version": "0.1.0", "dev": true, @@ -12521,6 +11264,11 @@ "he": "bin/he" } }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, "node_modules/help-me": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.0.1.tgz", @@ -12763,7 +11511,6 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -12989,29 +11736,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/interface-datastore": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.0.tgz", - "integrity": "sha512-q9OveOhexQ3Fx8h4YbuR4mZtUHwvlOynKnIwTm6x8oBTWfIyAKtlYtrOYdlHfqQztbYpdzRFcapopNJBMx36NQ==", - "dependencies": { - "interface-store": "^3.0.0", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/interface-store": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.0.tgz", - "integrity": "sha512-IBJn3hE6hYutwdDcStR76mcwfV98vZc49LkEN9ANHHpsxcm6YbGMJxowO2G3FITU4U5ZH4KJPlHOT6Oe2vzTWA==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/internal-slot": { "version": "1.0.3", "license": "MIT", @@ -13028,6 +11752,28 @@ "version": "1.1.8", "license": "MIT" }, + "node_modules/ip-address": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", + "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, "node_modules/ip-regex": { "version": "4.3.0", "license": "MIT", @@ -13042,6 +11788,56 @@ "node": ">= 0.10" } }, + "node_modules/ipfs-utils": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", + "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", + "dependencies": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" + } + }, + "node_modules/ipfs-utils/node_modules/any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "node_modules/ipfs-utils/node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/ipfs-utils/node_modules/node-fetch": { + "name": "@achingbrain/node-fetch", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "license": "MIT", @@ -13097,6 +11893,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, "node_modules/is-callable": { "version": "1.2.4", "license": "MIT", @@ -13231,6 +12049,11 @@ "node": ">=8" } }, + "node_modules/is-loopback-addr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", + "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" + }, "node_modules/is-negative-zero": { "version": "2.0.2", "license": "MIT", @@ -13302,17 +12125,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-regexp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", - "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-retry-allowed": { "version": "1.2.0", "license": "MIT", @@ -13424,6 +12236,26 @@ "version": "2.0.0", "license": "ISC" }, + "node_modules/iso-random-stream": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", + "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", + "dependencies": { + "events": "^3.3.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", + "engines": { + "node": ">=12" + } + }, "node_modules/isstream": { "version": "0.1.2", "license": "MIT" @@ -13586,6 +12418,23 @@ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" }, + "node_modules/it-buffer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", + "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", + "dependencies": { + "bl": "^5.0.0", + "buffer": "^6.0.3" + } + }, + "node_modules/it-concat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", + "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", + "dependencies": { + "bl": "^5.0.0" + } + }, "node_modules/it-drain": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", @@ -13601,10 +12450,24 @@ "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" }, - "node_modules/it-foreach": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-0.1.1.tgz", - "integrity": "sha512-ZLxL651N5w5SL/EIIcrXELgYrrkuEKj/TErG93C4lr6lNZziKsf338ljSG85PjQfu7Frg/1wESl5pLrPSFXI9g==" + "node_modules/it-glob": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz", + "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==", + "dependencies": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "node_modules/it-handshake": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", + "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", + "dependencies": { + "it-pushable": "^1.4.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } }, "node_modules/it-length": { "version": "1.0.4", @@ -13612,19 +12475,13 @@ "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" }, "node_modules/it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", "dependencies": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" } }, "node_modules/it-map": { @@ -13639,92 +12496,33 @@ "it-pushable": "^1.4.0" } }, - "node_modules/it-parallel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz", - "integrity": "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/it-pb-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-2.0.2.tgz", - "integrity": "sha512-FR1FM9W71wMTZlAij1Pq4PKNcfVb0TGhUTpNQ3tv0LMV/pJ5cDh4g3jW7jhwB+kHtr7PywD1CybBHaT8iAVpKg==", - "dependencies": { - "it-handshake": "^4.1.2", - "it-length-prefixed": "^8.0.2", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pb-stream/node_modules/it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", + "node_modules/it-pair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", + "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", "dependencies": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "get-iterator": "^1.0.2" } }, - "node_modules/it-pb-stream/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "node_modules/it-pair/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, - "node_modules/it-pb-stream/node_modules/it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", + "node_modules/it-pb-rpc": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz", + "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==", "dependencies": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pb-stream/node_modules/p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "is-buffer": "^2.0.5", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2" } }, "node_modules/it-pipe": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.4.tgz", - "integrity": "sha512-lK0BV0egwfc64DFJva+0Jh1z8UxwmYBpAHDwq21s0OenRCaEDIntx/iOyWH/jg5efBU6Xa8igzmOqm2CPPNDgg==", - "dependencies": { - "it-merge": "^1.0.4", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/it-pipe/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" }, "node_modules/it-pushable": { "version": "1.4.2", @@ -13733,6 +12531,14 @@ "fast-fifo": "^1.0.0" } }, + "node_modules/it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", + "dependencies": { + "bl": "^5.0.0" + } + }, "node_modules/it-sort": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz", @@ -13741,16 +12547,29 @@ "it-all": "^1.0.6" } }, - "node_modules/it-stream-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.4.tgz", - "integrity": "sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw==" - }, "node_modules/it-take": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" }, + "node_modules/it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "dependencies": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/it-to-stream/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, "node_modules/joycon": { "version": "3.1.1", "license": "MIT", @@ -14088,6 +12907,11 @@ "keccak": "^3.0.2" } }, + "node_modules/keypair": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz", + "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg==" + }, "node_modules/keyv": { "version": "4.3.3", "license": "MIT", @@ -14299,193 +13123,606 @@ } }, "node_modules/libp2p": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.38.0.tgz", - "integrity": "sha512-Wi/ptR69M5LuOrH8hwno98Dg/YeaDXmsyN2cd3vx/yuaEdcgz1RPdGtxxpyVP6J63eZbH07MYTvQcQHH5VhTkA==", - "dependencies": { - "@achingbrain/nat-port-mapper": "^1.0.3", - "@libp2p/components": "^2.0.3", - "@libp2p/connection": "^4.0.1", - "@libp2p/crypto": "^1.0.3", - "@libp2p/interface-address-manager": "^1.0.2", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-connection-encrypter": "^2.0.1", - "@libp2p/interface-content-routing": "^1.0.2", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-metrics": "^3.0.0", - "@libp2p/interface-peer-discovery": "^1.0.1", - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-peer-info": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.1", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/interface-pubsub": "^2.0.1", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interface-stream-muxer": "^2.0.2", - "@libp2p/interface-transport": "^1.0.3", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.1", - "@libp2p/multistream-select": "^3.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id": "^1.1.15", - "@libp2p/peer-id-factory": "^1.0.18", - "@libp2p/peer-record": "^4.0.2", - "@libp2p/peer-store": "^3.1.3", - "@libp2p/tracked-map": "^2.0.1", - "@libp2p/utils": "^3.0.1", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.3.3", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^8.0.1", - "err-code": "^3.0.1", + "version": "0.32.5", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.5.tgz", + "integrity": "sha512-G21yQUdq4LaGDvjMi3ySmcx1cESl8ZsTG1BAfjzjx65DsZJKQ5GPZlamcv+Rwppk3OIplWoRnCu6gam/fI//bw==", + "dependencies": { + "@motrix/nat-api": "^0.3.1", + "@vascosantos/moving-average": "^1.1.0", + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "aggregate-error": "^3.1.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.1", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.0", + "es6-promisify": "^7.0.0", "events": "^3.3.0", "hashlru": "^2.3.0", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-filter": "^1.0.3", - "it-first": "^1.0.6", - "it-foreach": "^0.1.1", - "it-handshake": "^4.1.2", - "it-length-prefixed": "^8.0.2", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-pair": "^2.0.2", - "it-pipe": "^2.0.3", - "it-sort": "^1.0.1", - "it-stream-types": "^1.0.4", + "interface-datastore": "^5.1.1", + "it-all": "^1.0.4", + "it-buffer": "^0.1.2", + "it-drain": "^1.0.3", + "it-filter": "^1.0.1", + "it-first": "^1.0.4", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2", + "it-map": "^1.0.4", + "it-merge": "^1.0.0", + "it-pipe": "^1.1.0", + "it-take": "^1.0.0", + "libp2p-crypto": "^0.19.4", + "libp2p-interfaces": "^1.0.0", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", "merge-options": "^3.0.4", - "multiformats": "^9.6.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.0.0", + "multistream-select": "^2.0.0", "mutable-proxy": "^1.0.0", - "node-forge": "^1.3.1", + "node-forge": "^0.10.0", + "p-any": "^3.0.0", "p-fifo": "^1.0.0", - "p-retry": "^5.0.0", - "p-settle": "^5.0.0", - "private-ip": "^2.3.3", - "protons-runtime": "^3.0.1", + "p-retry": "^4.4.0", + "p-settle": "^4.1.1", + "peer-id": "^0.15.0", + "private-ip": "^2.1.0", + "protobufjs": "^6.10.2", "retimer": "^3.0.0", "sanitize-filename": "^1.6.3", "set-delayed-interval": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.3.2", + "streaming-iterables": "^6.0.0", + "timeout-abort-controller": "^1.1.1", "uint8arrays": "^3.0.0", - "wherearewe": "^2.0.0", + "varint": "^6.0.0", + "wherearewe": "^1.0.0", "xsalsa20": "^1.1.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/libp2p-bootstrap": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.13.0.tgz", + "integrity": "sha512-8sXEZrikY+chKvMorkvOi9E/v9GvwsYr9DAEfzQZrOKQZByqhan1aXQKWrSpc4AxEv5/UopRzu1P47bkOi8wdw==", + "dependencies": { + "debug": "^4.3.1", + "mafmt": "^10.0.0", + "multiaddr": "^10.0.0", + "peer-id": "^0.15.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/libp2p/node_modules/@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", + "node_modules/libp2p-crypto": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", + "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", "dependencies": { - "dns-over-http-resolver": "^2.1.0", "err-code": "^3.0.1", - "is-ip": "^5.0.0", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.1", "multiformats": "^9.4.5", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "secp256k1": "^4.0.0", "uint8arrays": "^3.0.0", - "varint": "^6.0.0" + "ursa-optional": "^0.10.1" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=12.0.0" } }, - "node_modules/libp2p/node_modules/ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node_modules/libp2p-crypto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/libp2p/node_modules/is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", + "node_modules/libp2p-interfaces": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz", + "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==", "dependencies": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-length-prefixed": "^5.0.2", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.2", + "libp2p-crypto": "^0.20.0", + "multiaddr": "^10.0.0", + "multiformats": "^9.1.2", + "p-queue": "^6.6.2", + "peer-id": "^0.15.4", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/libp2p-interfaces/node_modules/abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/libp2p-interfaces/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/libp2p-interfaces/node_modules/libp2p-crypto": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", + "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", + "dependencies": { + "err-code": "^3.0.1", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.4", + "multiformats": "^9.4.5", + "noble-ed25519": "^1.2.6", + "noble-secp256k1": "^1.2.10", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" }, "engines": { - "node": ">=14.16" + "node": ">=12.0.0" + } + }, + "node_modules/libp2p-interfaces/node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/libp2p/node_modules/it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", + "node_modules/libp2p-interfaces/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dependencies": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" + "p-finally": "^1.0.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=8" } }, - "node_modules/libp2p/node_modules/it-pair": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", - "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", + "node_modules/libp2p-interfaces/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/libp2p-kad-dht": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.24.2.tgz", + "integrity": "sha512-fBIwmta7LnoQ77giJRVqhnj9QKcws0SvzPWAsOy5AP3ByuxhcmqrHXTDI1iBnkvtCCegOuL41JkJOvaafu1XnA==", "dependencies": { - "it-stream-types": "^1.0.3", - "p-defer": "^4.0.0" + "debug": "^4.3.1", + "err-code": "^3.0.0", + "hashlru": "^2.3.0", + "heap": "~0.2.6", + "interface-datastore": "^5.1.1", + "it-first": "^1.0.4", + "it-length": "^1.0.3", + "it-length-prefixed": "^5.0.2", + "it-pipe": "^1.1.0", + "k-bucket": "^5.1.0", + "libp2p-crypto": "^0.19.5", + "libp2p-interfaces": "^1.0.0", + "libp2p-record": "^0.10.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.5", + "p-map": "^4.0.0", + "p-queue": "^6.6.2", + "p-timeout": "^4.1.0", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.2", + "streaming-iterables": "^6.0.0", + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=14.0.0" } }, - "node_modules/libp2p/node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "node_modules/libp2p-kad-dht/node_modules/interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", + "dependencies": { + "err-code": "^3.0.1", + "interface-store": "^1.0.2", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } }, - "node_modules/libp2p/node_modules/it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", + "node_modules/libp2p-kad-dht/node_modules/interface-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", + "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" + }, + "node_modules/libp2p-kad-dht/node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dependencies": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/libp2p/node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "node_modules/libp2p-kad-dht/node_modules/p-queue/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/libp2p-kad-dht/node_modules/p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", "engines": { - "node": ">= 6.13.0" + "node": ">=10" + } + }, + "node_modules/libp2p-kad-dht/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/libp2p/node_modules/p-defer": { + "node_modules/libp2p-mplex": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz", + "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==", + "dependencies": { + "abortable-iterator": "^3.0.2", + "bl": "^5.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.1", + "varint": "^6.0.0" + } + }, + "node_modules/libp2p-mplex/node_modules/abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/libp2p-mplex/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/libp2p-noise": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-4.0.0.tgz", + "integrity": "sha512-DCXRKh9Y4pkw4HEWKPpZbeoROilZA1nrQMHIVrJ4JDEMUKVRucJc9GZTFNzo4yJUZ+ayQAlrfbUARiPPFbpfng==", + "deprecated": "This repository is now being maintained by ChainSafe, and can be found at https://github.com/ChainSafe/js-libp2p-noise under @chainsafe/libp2p-noise", + "dependencies": { + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/hkdf": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.1", + "debug": "^4.3.1", + "it-buffer": "^0.1.1", + "it-length-prefixed": "^5.0.2", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.9", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.1", + "uint8arrays": "^2.0.5" + } + }, + "node_modules/libp2p-noise/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/libp2p-noise/node_modules/uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/libp2p-record": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz", + "integrity": "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==", + "dependencies": { + "err-code": "^3.0.1", + "multiformats": "^9.4.5", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=14.0.0" + } + }, + "node_modules/libp2p-record/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/libp2p-tcp": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz", + "integrity": "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==", + "dependencies": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", + "multiaddr": "^10.0.0", + "stream-to-it": "^0.2.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/libp2p-tcp/node_modules/abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/libp2p-tcp/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/libp2p-utils": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", + "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", + "dependencies": { + "abortable-iterator": "^3.0.0", + "debug": "^4.3.0", + "err-code": "^3.0.1", + "ip-address": "^8.0.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^10.0.0", + "private-ip": "^2.1.1" + } + }, + "node_modules/libp2p-utils/node_modules/abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/libp2p-utils/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/libp2p/node_modules/abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/libp2p/node_modules/any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "node_modules/libp2p/node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/libp2p/node_modules/interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", + "dependencies": { + "err-code": "^3.0.1", + "interface-store": "^1.0.2", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/libp2p/node_modules/interface-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", + "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" + }, + "node_modules/libp2p/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/libp2p/node_modules/timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" } }, + "node_modules/libp2p/node_modules/timeout-abort-controller/node_modules/retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, "node_modules/lilconfig": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", @@ -14872,19 +14109,6 @@ "version": "4.0.0", "license": "Apache-2.0" }, - "node_modules/longbits": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/longbits/-/longbits-1.1.0.tgz", - "integrity": "sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==", - "dependencies": { - "byte-access": "^1.0.1", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/loose-envify": { "version": "1.4.0", "dev": true, @@ -14938,6 +14162,14 @@ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", "dev": true }, + "node_modules/mafmt": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", + "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", + "dependencies": { + "multiaddr": "^10.0.0" + } + }, "node_modules/make-dir": { "version": "3.1.0", "dev": true, @@ -15529,46 +14761,48 @@ "node": "*" } }, - "node_modules/mortice": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/multiaddr": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", + "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", "dependencies": { - "nanoid": "^4.0.0", - "observable-webworkers": "^2.0.1", - "p-queue": "^7.2.0", - "p-timeout": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multiformats": "^9.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" } }, - "node_modules/mortice/node_modules/nanoid": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^14 || ^16 || >=18" + "node_modules/multiaddr/node_modules/dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "dependencies": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" } }, - "node_modules/mortice/node_modules/p-timeout": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.0.0.tgz", - "integrity": "sha512-5iS61MOdUMemWH9CORQRxVXTp9g5K8rPnI9uQpo97aWgsH3vVXKjkIhDi+OgIDmN3Ly9+AZ2fZV01Wut1yzfKA==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/multiaddr/node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" } }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" + "node_modules/multiaddr/node_modules/uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "dependencies": { + "multiformats": "^9.4.2" + } }, "node_modules/multibase": { "version": "0.6.1", @@ -15659,6 +14893,23 @@ "version": "5.0.2", "license": "MIT" }, + "node_modules/multistream-select": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", + "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", + "dependencies": { + "bl": "^5.0.0", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "it-first": "^1.0.6", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.0", + "it-pipe": "^1.0.1", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0", + "uint8arrays": "^3.0.0" + } + }, "node_modules/mutable-proxy": { "version": "1.0.0", "license": "MIT", @@ -15733,6 +14984,11 @@ "version": "2.1.2", "license": "ISC" }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, "node_modules/nano-json-stream-parser": { "version": "0.1.2", "license": "MIT" @@ -15754,12 +15010,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/native-fetch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", + "node_modules/native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", "peerDependencies": { - "undici": "*" + "abort-controller": "*" } }, "node_modules/natural-compare": { @@ -15827,6 +15083,18 @@ "tslib": "^2.0.3" } }, + "node_modules/noble-ed25519": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz", + "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==", + "deprecated": "Switch to namespaced @noble/ed25519 for security and feature updates" + }, + "node_modules/noble-secp256k1": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz", + "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==", + "deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates" + }, "node_modules/nock": { "version": "13.2.9", "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", @@ -15879,6 +15147,14 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/node-gyp-build": { "version": "4.3.0", "license": "MIT", @@ -16048,14 +15324,6 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/nyc/node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -16189,15 +15457,6 @@ "http-https": "^1.0.0" } }, - "node_modules/observable-webworkers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/on-exit-leak-free": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", @@ -16265,6 +15524,29 @@ "node": ">=0.10.0" } }, + "node_modules/p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "dependencies": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-any/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -16333,7 +15615,6 @@ }, "node_modules/p-map": { "version": "4.0.0", - "dev": true, "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" @@ -16345,96 +15626,84 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-queue": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", - "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", - "dependencies": { - "eventemitter3": "^4.0.7", - "p-timeout": "^5.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-reflect": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-3.1.0.tgz", - "integrity": "sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/p-retry": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dependencies": { - "@types/retry": "0.12.1", + "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/p-settle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-5.1.0.tgz", - "integrity": "sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", "dependencies": { - "p-limit": "^4.0.0", - "p-reflect": "^3.1.0" + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-settle/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { - "yocto-queue": "^1.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-settle/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "dependencies": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "node_modules/p-some/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" } }, "node_modules/package-hash": { @@ -16581,6 +15850,85 @@ "node": ">=0.12" } }, + "node_modules/peer-id": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz", + "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==", + "dependencies": { + "class-is": "^1.1.0", + "libp2p-crypto": "^0.20.0", + "minimist": "^1.2.5", + "multiformats": "^9.4.5", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "bin": { + "peer-id": "src/bin.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/peer-id/node_modules/libp2p-crypto": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", + "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", + "dependencies": { + "err-code": "^3.0.1", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.4", + "multiformats": "^9.4.5", + "noble-ed25519": "^1.2.6", + "noble-secp256k1": "^1.2.10", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/peer-id/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/pem-jwk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", + "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", + "dependencies": { + "asn1.js": "^5.0.1" + }, + "bin": { + "pem-jwk": "bin/pem-jwk.js" + }, + "engines": { + "node": ">=5.10.0" + } + }, "node_modules/performance-now": { "version": "2.1.0", "license": "MIT" @@ -16882,50 +16230,6 @@ "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", "dev": true }, - "node_modules/protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" - }, - "node_modules/protons-runtime": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-3.1.0.tgz", - "integrity": "sha512-S1iSPQC0McdHKJRi0XcATBkWgwWPx46UDfrnshYDXBvGHSYqkFtn4MQ8Gatf67w7FzFtHivA+Hb0ZPq56upG8w==", - "dependencies": { - "protobufjs": "^7.0.0", - "uint8arraylist": "^2.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "uint8arraylist": "^2.3.2" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "license": "MIT", @@ -17062,11 +16366,6 @@ "node": ">= 0.6" } }, - "node_modules/rate-limiter-flexible": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.3.10.tgz", - "integrity": "sha512-bXqRBBb85WmnJemw9+xLdA7ezLXwZ+hXcOD8ZzfGMhbus4jHRrjTMXZ1kJqpKnpGu34scZc6f0qYNSxBwO7yrg==" - }, "node_modules/raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", @@ -17275,6 +16574,14 @@ "dev": true, "peer": true }, + "node_modules/react-native-fetch-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "dependencies": { + "p-defer": "^3.0.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "license": "MIT", @@ -18814,6 +18121,14 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/streaming-iterables": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", + "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==", + "engines": { + "node": ">=10" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "engines": { @@ -18964,22 +18279,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/super-regex": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", - "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", - "dependencies": { - "clone-regexp": "^3.0.0", - "function-timeout": "^0.1.0", - "time-span": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { "version": "5.5.0", "dev": true, @@ -19318,20 +18617,6 @@ "version": "2.3.8", "license": "MIT" }, - "node_modules/time-span": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", - "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", - "dependencies": { - "convert-hrtime": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/timed-out": { "version": "4.0.1", "license": "MIT", @@ -19339,14 +18624,6 @@ "node": ">=0.10.0" } }, - "node_modules/timeout-abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", - "dependencies": { - "retimer": "^3.0.0" - } - }, "node_modules/tmp": { "version": "0.2.1", "dev": true, @@ -19535,33 +18812,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/uint8-varint": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.3.tgz", - "integrity": "sha512-ESs/P/AYPy2wWZCT2V6Tg7RPqA6jzlhJbdsNPFvbDeIrDxj12dwTcm0rD9yFlnmgEf6vRBCZrP3d0SiRTcPwSQ==", - "dependencies": { - "byte-access": "^1.0.0", - "longbits": "^1.1.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/uint8arraylist": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.3.2.tgz", - "integrity": "sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw==", - "dependencies": { - "uint8arrays": "^3.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -19676,6 +18926,11 @@ "node": ">= 4.0.0" } }, + "node_modules/unordered-array-remove": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", + "integrity": "sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -19788,6 +19043,19 @@ "node": ">= 4" } }, + "node_modules/ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/utf-8-validate": { "version": "5.0.9", "hasInstallScript": true, @@ -20399,9 +19667,9 @@ } }, "node_modules/wherearewe": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", - "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz", + "integrity": "sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw==", "dependencies": { "is-electron": "^2.2.0" }, @@ -20818,14 +20086,6 @@ "node": ">=8" } }, - "node_modules/yargs/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/yargs/node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -20865,61 +20125,6 @@ } }, "dependencies": { - "@achingbrain/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "dependencies": { - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - } - } - }, - "@achingbrain/nat-port-mapper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", - "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", - "requires": { - "@achingbrain/ssdp": "^4.0.1", - "@libp2p/logger": "^2.0.0", - "default-gateway": "^6.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.7", - "p-defer": "^4.0.0", - "p-timeout": "^5.0.2", - "xml2js": "^0.4.23" - }, - "dependencies": { - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" - } - } - }, - "@achingbrain/ssdp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", - "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", - "requires": { - "event-iterator": "^2.0.0", - "freeport-promise": "^2.0.0", - "merge-options": "^3.0.4", - "uuid": "^8.3.2", - "xml2js": "^0.4.23" - } - }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -21235,47 +20440,6 @@ "to-fast-properties": "^2.0.0" } }, - "@chainsafe/libp2p-noise": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-8.0.1.tgz", - "integrity": "sha512-mr1/CMTBIfraqTY4OWBdmJ2v+0+D89vbIp1nJTHz64oDPRgU0Ah8wb7K5hgs0erU8aYMkgMtbhXeouhJK3A7wA==", - "requires": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-connection-encrypter": "^2.0.1", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.8", - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "it-length-prefixed": "^8.0.2", - "it-pair": "^2.0.2", - "it-pb-stream": "^2.0.2", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.3.2", - "uint8arrays": "^3.1.0" - }, - "dependencies": { - "it-pair": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", - "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", - "requires": { - "it-stream-types": "^1.0.3", - "p-defer": "^4.0.0" - } - }, - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" - } - } - }, "@colors/colors": { "version": "1.5.0" }, @@ -23982,881 +23146,185 @@ "version": "5.7.0", "dev": true, "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "dev": true, - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.0", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "dev": true, - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==" - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@libp2p/bootstrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-2.0.0.tgz", - "integrity": "sha512-95ekDzxfBm8fHHxJY5xJDPcSZQMuwIzJcHogSvw3+REw/LBPmpHUtTDVfx2BcMdXWpXrJUWVZzCB0zS/rCD9dg==", - "requires": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.9", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.1.7" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - } - } - }, - "@libp2p/components": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-2.1.0.tgz", - "integrity": "sha512-9xK1pauZiptaR0eJFn1LcOr/hwosU76IjPOqTkRVZVjSStIWmBl+Njrn4qK05Jizopf0cIUnpt/8A6YWjM4D7g==", - "requires": { - "@libp2p/interface-address-manager": "^1.0.2", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-connection-manager": "^1.1.0", - "@libp2p/interface-content-routing": "^1.0.2", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-metrics": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.1", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/interface-pubsub": "^2.1.0", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interface-transport": "^1.0.3", - "@libp2p/interfaces": "^3.0.3", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0" - } - }, - "@libp2p/connection": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/connection/-/connection-4.0.1.tgz", - "integrity": "sha512-YT+5cYUsG5H5oaGFJyJSuuKdIdBQ4LQQljNvkuO5REiMvviAiWfiF4CMJIQvDW6m7F+s4qpxDHMYuZPJJw2jzw==", - "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", - "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - } - } - }, - "@libp2p/crypto": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.4.tgz", - "integrity": "sha512-3hHZvqi+vI8YoTHE+0u8nA5SYGPLZRLMvbgXQoAn0IyPjez66Taaxym/3p3Duf9QkFlvJu95nzpNzv0OdHs9Yw==", - "requires": { - "@libp2p/interface-keys": "^1.0.2", - "@noble/ed25519": "^1.6.0", - "@noble/secp256k1": "^1.5.4", - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "node-forge": "^1.1.0", - "protons-runtime": "^3.1.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - } - } - }, - "@libp2p/interface-address-manager": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz", - "integrity": "sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw==", - "requires": { - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" - } - }, - "@libp2p/interface-connection": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.2.tgz", - "integrity": "sha512-38R2GQ6BCOtwMi5uWU5MLr+xfEpRmVK9gqOp7jNx+6T7TVn8ji4725XLXNfpzprbOrzZkqf2iER84s8+yX4pMA==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.1" - } - }, - "@libp2p/interface-connection-encrypter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-2.0.1.tgz", - "integrity": "sha512-GtqsNJuL1q7LWX3z41t9eFFFrlLSmMH92E0rupoXeFx1dJ8Gs/Zy8b6lZro96Ld6rjU1CeZa87SmYeqQQeHRmw==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.1" - } - }, - "@libp2p/interface-connection-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.1.1.tgz", - "integrity": "sha512-sPBHXNLqYCYl/fo4hdseRJm/Z9DWgPulegCKI5JUjaiqrcdmAHDOnIHIKWP0i+N+yNR3y7nUBWp5QT1pqpvK7Q==", - "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" - } - }, - "@libp2p/interface-content-routing": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-1.0.2.tgz", - "integrity": "sha512-Ue1X8XrZ4ymTMQk/GWom/EKfPB5Lu7zy33ohjSix26Da/HbBvkXBdnYGDj485vxSOZGZRqeBhh21nCVjD/yLyg==", - "requires": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - } - }, - "@libp2p/interface-dht": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-dht/-/interface-dht-1.0.1.tgz", - "integrity": "sha512-EToxQznHUnD9frWoHwq8DUaOa7RZ2qoo6beb1aWdQrEJsEdUBi62FHh9qrLkrL+E4W3rkl2+WrhSP6/iHxZZwQ==", - "requires": { - "@libp2p/interface-peer-discovery": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "multiformats": "^9.6.3" - } - }, - "@libp2p/interface-keys": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.3.tgz", - "integrity": "sha512-K8/HlRl/swbVTWuGHNHF28EytszYfUhKgUHfv8CdbMk9ZA/bgO4uU+d9rcrg/Dhw3511U3aRz2bwl2psn6rJfg==" - }, - "@libp2p/interface-metrics": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "it-stream-types": "^1.0.4" - } - }, - "@libp2p/interface-peer-discovery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.1.tgz", - "integrity": "sha512-ZqBhpX7fR3ROYQaGYV47YhyTJJzFDzyyEIsQ7NnDuG3KhcQb2PtocnN0sy1Ozm784M0oYveM/HjfuNxxcOwdYg==", - "requires": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - } - }, - "@libp2p/interface-peer-id": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.0.4.tgz", - "integrity": "sha512-VRnE0MqmS1kN43hyKCEdkhz0gciuDML7hpL3p8zDm0LnveNMLJsR+/VSUaugCi/muOzLaLk26WffKWbMYfnGfA==", - "requires": { - "multiformats": "^9.6.3" - } - }, - "@libp2p/interface-peer-info": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.3.tgz", - "integrity": "sha512-QKybxfp/NmDGDMkgf/CTt4fU03ajZnldHr9TYg5wMkJrnVaaHbhDTYBg5YWt+iOH1mgR89/dpKv/Na0ZE5sPIA==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "@multiformats/multiaddr": "^11.0.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" } }, - "@libp2p/interface-peer-routing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.1.tgz", - "integrity": "sha512-MKx2g0mIUI6qNuLv3xApKXR2ZrO9CUTT9ZPL0gvRlhpFCXovEkdWJ1h8KnmkR7tGPxKHt2bsCCJ8gqUaFeNstA==", + "@ethersproject/signing-key": { + "version": "5.7.0", "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" } }, - "@libp2p/interface-peer-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.2.tgz", - "integrity": "sha512-ZjE9AkDtjz4R+SppCgZ66oko7Z9pDsdFk1lbba0hTPA2i0uuWdTYep7bZ3RvKot0Q2UrWg8ySL/30pW+Wp70sA==", + "@ethersproject/strings": { + "version": "5.7.0", "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" } }, - "@libp2p/interface-pubsub": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", - "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", + "@ethersproject/transactions": { + "version": "5.7.0", "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-pushable": "^3.0.0", - "uint8arraylist": "^2.0.0" - }, - "dependencies": { - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - } + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" } }, - "@libp2p/interface-record": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-2.0.1.tgz", - "integrity": "sha512-RqF5jKukI8v3Q8MZb4d8/UVjg0OXbl0R8ErWi/LKf+uklA8kTA7rT4FQXFUBycxrkFmEu/tJnW+R1/4fwRwZVg==", + "@ethersproject/wallet": { + "version": "5.7.0", + "dev": true, "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "uint8arraylist": "^2.0.0" + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" } }, - "@libp2p/interface-registrar": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-2.0.3.tgz", - "integrity": "sha512-YA/A+o+166/+noXxMFXvZdg9soZSZX2EPOlUwnGXZWR7J5B2sxyP76QxHWXL5npsEMj7suP+Rjb/GJYGz7rDyg==", + "@ethersproject/web": { + "version": "5.7.0", "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interface-peer-id": "^1.0.0" + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "@libp2p/interface-stream-muxer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-2.0.2.tgz", - "integrity": "sha512-BcLsV8ZVr34G32u/w4pgSAgFju9CTuBB9OJwgX6ugasYf6LtJ0a3m5Kwddy79lvvM/gBvVv/McpCr4mPxP4WWg==", + "@ethersproject/wordlists": { + "version": "5.7.0", + "dev": true, "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-stream-types": "^1.0.4" + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" } }, - "@libp2p/interface-transport": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz", - "integrity": "sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q==", + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "requires": { - "@libp2p/interface-connection": "^3.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "it-stream-types": "^1.0.4" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "@libp2p/interfaces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.0.3.tgz", - "integrity": "sha512-8IIxw7TKpaYTtVfZN3jePLlm/E/VzqPpqerN+jhA+1s86akRSeyxVBYi3W9SWDSf0oIauHJSDE8KNxLceAfeag==" + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==" }, - "@libp2p/logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.1.tgz", - "integrity": "sha512-Mtj7ImjRYbaANuT53QRqc7ooBYpWieLo7KbqYYGas5O2AWQeOu/zyGBMM35WbWIo7sMuhCas9XBPJdFOR7A05w==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.2", - "debug": "^4.3.3", - "interface-datastore": "^7.0.0", - "multiformats": "^9.6.3" - } + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" }, - "@libp2p/mplex": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-5.2.2.tgz", - "integrity": "sha512-e0EVsOYMiXGiOkLVsGkhg9J/7SWVWMGHhCBvEH4N+s07UEBH/fl+8wgNFyMb8SrdAD2CUP4yaULAMRgUqY4j4Q==", - "requires": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-stream-muxer": "^2.0.0", - "@libp2p/logger": "^2.0.0", - "@libp2p/tracked-map": "^2.0.0", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "err-code": "^3.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.4", - "rate-limiter-flexible": "^2.3.9", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - } - } + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, - "@libp2p/multistream-select": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-3.0.0.tgz", - "integrity": "sha512-l7NFJfq6J86wyM/F0agf45CX/4BLgm9Ork5pfHuz8E+z0F7s+i+gWZH8Pk1CIrIfOpMVJvEtJCnRcjJnDAcv2A==", + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "dev": true, "requires": { - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^4.0.1", - "it-length-prefixed": "^8.0.2", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.3.1", - "uint8arrays": "^3.0.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "dependencies": { - "it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", + "find-up": { + "version": "4.1.0", + "dev": true, "requires": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", + "locate-path": { + "version": "5.0.0", + "dev": true, "requires": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" + "p-locate": "^4.1.0" } }, - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" - } - } - }, - "@libp2p/peer-collections": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-2.2.0.tgz", - "integrity": "sha512-fLHWRms2aiSplZcTfXz6bLGZ62f1jfcW3EkS/TweVRpbWpzbtkW+V1CKkhlF3Qc4pJl7GTA5HAfPWIrVDvBYag==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/peer-id": "^1.1.0" - } - }, - "@libp2p/peer-id": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.15.tgz", - "integrity": "sha512-Y33JLEfsLmLUjuC2nhQ2lBXP6PIsR892gSsNy4Vd7oILkuRhjPouIojP9BbME0m9bhVbAws+Zh9NBKtp7UH7wA==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.6.3", - "uint8arrays": "^3.0.0" - } - }, - "@libp2p/peer-id-factory": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-1.0.18.tgz", - "integrity": "sha512-x7lyPrfF4kkMj6az+h1sq5L6ifTvZt2exKi8yS6/Gi/hT8rfqXROdBDtanMjJivIFlzVKJyZdfW5f5RK9Av3iQ==", - "requires": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-keys": "^1.0.2", - "@libp2p/interface-peer-id": "^1.0.0", - "@libp2p/peer-id": "^1.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" - } - }, - "@libp2p/peer-record": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-4.0.2.tgz", - "integrity": "sha512-r1arc73ADcLd9sESNy7bDHPAsv3JYvIV7kXjB13wQJAQ1oeu9e0I6f1MAIWt4ZukNAiRD8gdlrRvNG63AAZfOg==", - "requires": { - "@libp2p/crypto": "^1.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-record": "^2.0.1", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.13", - "@libp2p/utils": "^3.0.0", - "@multiformats/multiaddr": "^10.1.5", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8-varint": "^1.0.2", - "uint8arraylist": "^2.1.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", + "p-limit": { + "version": "2.3.0", + "dev": true, "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" + "p-try": "^2.0.0" } }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - } - } - }, - "@libp2p/peer-store": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-3.1.3.tgz", - "integrity": "sha512-W2Q6l3nk+SwI45busDuSgGgKs9Wz4YTvf2DojBVkaqP1m+32hsjngRYNW63kaexJswnIBvb3uFqnrlyf9plgKg==", - "requires": { - "@libp2p/components": "^2.0.0", - "@libp2p/interface-peer-id": "^1.0.2", - "@libp2p/interface-peer-info": "^1.0.1", - "@libp2p/interface-peer-store": "^1.1.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.2", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^1.1.0", - "@libp2p/peer-record": "^4.0.1", - "@multiformats/multiaddr": "^10.2.0", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-map": "^1.0.6", - "it-pipe": "^2.0.3", - "mortice": "^3.0.0", - "multiformats": "^9.6.3", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.1.0" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", + "p-locate": { + "version": "4.1.0", + "dev": true, "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" + "p-limit": "^2.2.0" } }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" + "path-exists": { + "version": "4.0.0", + "dev": true }, - "is-ip": { + "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } + "dev": true } } }, - "@libp2p/record": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-2.0.2.tgz", - "integrity": "sha512-JmkV8uqn7BFQ1Ic7nVZOWHJJqo/JMDhTOJiMU94Ypsc3TwHnpmYXRiWpCoGkGlj8kmZkMtSiydl/OpfVXdR10g==", - "requires": { - "@libp2p/interface-dht": "^1.0.0", - "err-code": "^3.0.1", - "multiformats": "^9.4.5", - "protons-runtime": "^3.1.0", - "uint8arraylist": "^2.1.1", - "uint8arrays": "^3.0.0" - } + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true }, - "@libp2p/tcp": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-3.1.2.tgz", - "integrity": "sha512-b2xrzmAx0ktlgzsSgaqeHjtnVNzZeYPZPtgjbGub9zEWHZFuN4XER9XppdCMbvQw/68RHufuSQu8PEDMv5l4VQ==", - "requires": { - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-transport": "^1.0.4", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.0", - "@libp2p/utils": "^3.0.2", - "@multiformats/mafmt": "^11.0.3", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "stream-to-it": "^0.2.2" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.1.tgz", - "integrity": "sha512-6EAZPs0tvdSYogxnbA9M2y3YHUUFg3nJ+vDKmqodRoBMdT0cio67eE3WMAGUgRolijPFOORWcry/tX0srTnTPA==", - "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - } - } + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true }, - "@libp2p/topology": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/topology/-/topology-3.0.1.tgz", - "integrity": "sha512-MUGwu+oEiaQElkHtYF7VfsNTo5GS6AQkNE69lg0Enb1AH66I2UivZPaVhT3s2y6kXPU2W4jkmz9HzkLmcKLKuw==", - "requires": { - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/logger": "^2.0.1", - "err-code": "^3.0.1", - "it-all": "^1.0.6" - } + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, - "@libp2p/tracked-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz", - "integrity": "sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA==", + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "requires": { - "@libp2p/interface-metrics": "^3.0.0" - } - }, - "@libp2p/utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.2.tgz", - "integrity": "sha512-/+mwCEd1o1sko3fYkVfy9pDT3Ks+KszR4Y3fb3M3/UCETDituvqZKHHM4wyTJsFlrFrohbtYlNvWhJ7Pej3X5g==", - "requires": { - "@achingbrain/ip-address": "^8.1.0", - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "err-code": "^3.0.1", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^1.0.4", - "private-ip": "^2.1.1", - "uint8arraylist": "^2.3.2" - }, - "dependencies": { - "@multiformats/multiaddr": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.0.tgz", - "integrity": "sha512-NfOx/RF7TmGeCiQ5rmpvU7Ny7VKfmIG2jP2XSebTCv78vGuSRQ1YF+5UEKWft2Kjhtj1Xaq7dvgB9SeLp+BYSw==", - "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } - }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - }, - "is-loopback-addr": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz", - "integrity": "sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==" - } + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@metamask/eth-sig-util": { @@ -24916,48 +23384,19 @@ "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", "dev": true }, - "@multiformats/mafmt": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-11.0.3.tgz", - "integrity": "sha512-DvCQeZJgaC4kE3BLqMuW3gQkNAW14Z7I+yMt30Ze+wkfHkWSp+bICcHGihhtgfzYCumHA/vHlJ9n54mrCcmnvQ==", - "requires": { - "@multiformats/multiaddr": "^11.0.0" - } - }, - "@multiformats/multiaddr": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.0.1.tgz", - "integrity": "sha512-6EAZPs0tvdSYogxnbA9M2y3YHUUFg3nJ+vDKmqodRoBMdT0cio67eE3WMAGUgRolijPFOORWcry/tX0srTnTPA==", + "@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", "requires": { - "dns-over-http-resolver": "^2.1.0", - "err-code": "^3.0.1", - "is-ip": "^5.0.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" - }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", - "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" - } - } + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" } }, - "@noble/ed25519": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.0.tgz", - "integrity": "sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg==" - }, "@noble/hashes": { "version": "1.1.2" }, @@ -25694,65 +24133,6 @@ "integrity": "sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w==", "dev": true }, - "@tracelabs/kad-dht": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@tracelabs/kad-dht/-/kad-dht-3.0.6.tgz", - "integrity": "sha512-oop4bDl9CGZbmfKmIwwC7HH7raVNn0O/RFlIpxhxNoVCwCu/KOfdYNBtIQeNp/IdgkIyAgqO2+j41QVJNgU5Vw==", - "requires": { - "@libp2p/components": "^2.0.4", - "@libp2p/crypto": "^1.0.4", - "@libp2p/interface-address-manager": "^1.0.3", - "@libp2p/interface-connection": "^3.0.2", - "@libp2p/interface-connection-manager": "^1.1.1", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-peer-discovery": "^1.0.1", - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-peer-info": "^1.0.3", - "@libp2p/interface-peer-store": "^1.2.2", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.1", - "@libp2p/peer-collections": "^2.2.0", - "@libp2p/peer-id": "^1.1.15", - "@libp2p/record": "^2.0.2", - "@libp2p/topology": "^3.0.0", - "@multiformats/multiaddr": "^11.0.0", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^8.0.1", - "err-code": "^3.0.1", - "hashlru": "^2.3.0", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-first": "^1.0.6", - "it-length": "^1.0.3", - "it-length-prefixed": "^8.0.2", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-parallel": "^2.0.1", - "it-pipe": "^2.0.3", - "it-stream-types": "^1.0.4", - "it-take": "^1.0.2", - "k-bucket": "^5.1.0", - "multiformats": "^9.6.3", - "p-defer": "^4.0.0", - "p-queue": "^7.2.0", - "private-ip": "^2.3.3", - "protons-runtime": "^3.1.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - }, - "dependencies": { - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" - } - } - }, "@truffle/hdwallet": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.0.tgz", @@ -26319,9 +24699,19 @@ "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, "@types/lru-cache": { "version": "5.1.1" }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "@types/minimist": { "version": "1.2.2" }, @@ -26374,9 +24764,9 @@ } }, "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "@types/secp256k1": { "version": "4.0.3", @@ -26439,21 +24829,17 @@ "version": "1.1.2", "dev": true }, + "@vascosantos/moving-average": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + }, "abort-controller": { "version": "3.0.0", "requires": { "event-target-shim": "^5.0.0" } }, - "abortable-iterator": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", - "integrity": "sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^1.0.3" - } - }, "abortcontroller-polyfill": { "version": "1.7.3" }, @@ -26488,7 +24874,6 @@ }, "aggregate-error": { "version": "3.1.0", - "dev": true, "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -26546,11 +24931,6 @@ "version": "1.3.0", "dev": true }, - "any-signal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", - "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" - }, "anymatch": { "version": "3.1.2", "dev": true, @@ -26882,6 +25262,24 @@ "version": "2.2.0", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "blakejs": { "version": "1.1.1" }, @@ -27072,14 +25470,6 @@ "streamsearch": "^1.1.0" } }, - "byte-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", - "integrity": "sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==", - "requires": { - "uint8arraylist": "^2.0.0" - } - }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -27323,8 +25713,7 @@ "dev": true }, "clean-stack": { - "version": "2.2.0", - "dev": true + "version": "2.2.0" }, "cli-cursor": { "version": "3.1.0", @@ -27414,14 +25803,6 @@ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, - "clone-regexp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", - "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", - "requires": { - "is-regexp": "^3.0.0" - } - }, "clone-response": { "version": "1.0.3", "requires": { @@ -27547,11 +25928,6 @@ "content-type": { "version": "1.0.4" }, - "convert-hrtime": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", - "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==" - }, "convert-source-map": { "version": "1.8.0", "dev": true, @@ -27737,32 +26113,6 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, - "datastore-core": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.1.tgz", - "integrity": "sha512-FSzrX8fsYUfbA1dq2DvVr9+CYMRAVDKSVe+wGY+Ipiv7ikUDpZZI0htC/o6Fbg0yDxiGDXGOmEIsS5RBb5NchQ==", - "requires": { - "@libp2p/logger": "^2.0.0", - "err-code": "^3.0.1", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.4", - "it-drain": "^1.0.4", - "it-filter": "^1.0.2", - "it-map": "^1.0.5", - "it-merge": "^1.0.1", - "it-pipe": "^2.0.3", - "it-pushable": "^3.0.0", - "it-take": "^1.0.1", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - } - } - }, "dateformat": { "version": "4.6.3" }, @@ -27916,16 +26266,6 @@ "web3": "^1.7.3" } }, - "dns-over-http-resolver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.0.tgz", - "integrity": "sha512-eb8RGy6k54JdD7Rjw8g65y1MyA4z3m3IIYh7uazkgZuKIdFn8gYt8dydMm3op+2UshDdk9EexrXcDluKNY/CDg==", - "requires": { - "debug": "^4.3.1", - "native-fetch": "^4.0.2", - "receptacle": "^1.3.2" - } - }, "doctrine": { "version": "3.0.0", "requires": { @@ -28048,6 +26388,14 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "electron-fetch": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", + "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "requires": { + "encoding": "^0.1.13" + } + }, "electron-to-chromium": { "version": "1.4.211", "dev": true @@ -28082,8 +26430,6 @@ }, "encoding": { "version": "0.1.13", - "optional": true, - "peer": true, "requires": { "iconv-lite": "^0.6.2" } @@ -28198,6 +26544,11 @@ "es6-promise": { "version": "4.2.8" }, + "es6-promisify": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz", + "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==" + }, "es6-symbol": { "version": "3.1.3", "requires": { @@ -29229,11 +27580,6 @@ "strip-hex-prefix": "1.0.0" } }, - "event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, "event-target-shim": { "version": "5.0.1" }, @@ -29526,6 +27872,11 @@ "flat-cache": "^3.0.4" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "fill-range": { "version": "7.0.1", "requires": { @@ -29599,10 +27950,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "dev": true - }, "path-exists": { "version": "4.0.0", "dev": true @@ -29692,11 +28039,6 @@ "forwarded": { "version": "0.2.0" }, - "freeport-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", - "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==" - }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -29789,11 +28131,6 @@ "function-bind": { "version": "1.1.1" }, - "function-timeout": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", - "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==" - }, "function.prototype.name": { "version": "1.1.5", "requires": { @@ -30190,11 +28527,6 @@ "has-symbols": "^1.0.1" } }, - "get-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.0.tgz", - "integrity": "sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg==" - }, "get-package-type": { "version": "0.1.0", "dev": true @@ -30465,6 +28797,11 @@ "version": "1.2.0", "dev": true }, + "heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, "help-me": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.0.1.tgz", @@ -30621,8 +28958,7 @@ "version": "0.1.4" }, "indent-string": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "inflection": { "version": "1.13.2", @@ -30794,21 +29130,6 @@ } } }, - "interface-datastore": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.0.tgz", - "integrity": "sha512-q9OveOhexQ3Fx8h4YbuR4mZtUHwvlOynKnIwTm6x8oBTWfIyAKtlYtrOYdlHfqQztbYpdzRFcapopNJBMx36NQ==", - "requires": { - "interface-store": "^3.0.0", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "interface-store": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.0.tgz", - "integrity": "sha512-IBJn3hE6hYutwdDcStR76mcwfV98vZc49LkEN9ANHHpsxcm6YbGMJxowO2G3FITU4U5ZH4KJPlHOT6Oe2vzTWA==" - }, "internal-slot": { "version": "1.0.3", "requires": { @@ -30820,12 +29141,77 @@ "ip": { "version": "1.1.8" }, + "ip-address": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", + "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" + }, + "dependencies": { + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + } + } + }, "ip-regex": { "version": "4.3.0" }, "ipaddr.js": { "version": "1.9.1" }, + "ipfs-utils": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", + "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + }, + "node-fetch": { + "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" + } + } + }, "is-arguments": { "version": "1.1.1", "requires": { @@ -30859,6 +29245,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, "is-callable": { "version": "1.2.4" }, @@ -30936,6 +29327,11 @@ "ip-regex": "^4.0.0" } }, + "is-loopback-addr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", + "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" + }, "is-negative-zero": { "version": "2.0.2" }, @@ -30970,11 +29366,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-regexp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", - "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==" - }, "is-retry-allowed": { "version": "1.2.0" }, @@ -31032,6 +29423,20 @@ "isexe": { "version": "2.0.0" }, + "iso-random-stream": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", + "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", + "requires": { + "events": "^3.3.0", + "readable-stream": "^3.4.0" + } + }, + "iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" + }, "isstream": { "version": "0.1.2" }, @@ -31145,6 +29550,23 @@ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" }, + "it-buffer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", + "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3" + } + }, + "it-concat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", + "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", + "requires": { + "bl": "^5.0.0" + } + }, "it-drain": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", @@ -31160,10 +29582,24 @@ "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" }, - "it-foreach": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-0.1.1.tgz", - "integrity": "sha512-ZLxL651N5w5SL/EIIcrXELgYrrkuEKj/TErG93C4lr6lNZziKsf338ljSG85PjQfu7Frg/1wESl5pLrPSFXI9g==" + "it-glob": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.14.tgz", + "integrity": "sha512-TKKzs9CglbsihSpcwJPXN5DBUssu4akRzPlp8QJRCoLrKoaOpyY2V1qDlxx+UMivn0i114YyTd4AawWl7eqIdw==", + "requires": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "it-handshake": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", + "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", + "requires": { + "it-pushable": "^1.4.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } }, "it-length": { "version": "1.0.4", @@ -31171,15 +29607,13 @@ "integrity": "sha512-KN4jXzp77/GQ4fxUGMbsJx3ALUZ6SP3E79tzs2weGghtImDLFZzua/l3fOK0LN/hMH0M330HJRZWwYZfDNuCIA==" }, "it-length-prefixed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.2.tgz", - "integrity": "sha512-qYCGZ6lTaI6lcuTXUrJmVpE6clq63ULrkq1FGTxHrzexjB2cCrS/CZ5HCRDZ5IRPw33tSDUDK91S7X5S64dPyQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", "requires": { - "err-code": "^3.0.1", - "it-stream-types": "^1.0.4", - "uint8-varint": "^1.0.1", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.0.0" + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" } }, "it-map": { @@ -31193,81 +29627,50 @@ "it-pushable": "^1.4.0" } }, - "it-parallel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-2.0.1.tgz", - "integrity": "sha512-VnHs9UJXSr8jmPnquS76qhLU+tE3WvLJqBUKMjAD2/Z1O5JsjpHMqq8yvVByyuwuFnh1OG9faJVGc5c9t+T6Kg==", - "requires": { - "p-defer": "^3.0.0" - } - }, - "it-pb-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-2.0.2.tgz", - "integrity": "sha512-FR1FM9W71wMTZlAij1Pq4PKNcfVb0TGhUTpNQ3tv0LMV/pJ5cDh4g3jW7jhwB+kHtr7PywD1CybBHaT8iAVpKg==", + "it-pair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", + "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", "requires": { - "it-handshake": "^4.1.2", - "it-length-prefixed": "^8.0.2", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" + "get-iterator": "^1.0.2" }, "dependencies": { - "it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", - "requires": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" - } - }, - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - }, - "it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", - "requires": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" - } - }, - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" } } }, - "it-pipe": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.4.tgz", - "integrity": "sha512-lK0BV0egwfc64DFJva+0Jh1z8UxwmYBpAHDwq21s0OenRCaEDIntx/iOyWH/jg5efBU6Xa8igzmOqm2CPPNDgg==", + "it-pb-rpc": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz", + "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==", "requires": { - "it-merge": "^1.0.4", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.3" - }, - "dependencies": { - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" - } + "is-buffer": "^2.0.5", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2" } }, + "it-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" + }, "it-pushable": { "version": "1.4.2", "requires": { "fast-fifo": "^1.0.0" } }, + "it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", + "requires": { + "bl": "^5.0.0" + } + }, "it-sort": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-1.0.1.tgz", @@ -31276,16 +29679,31 @@ "it-all": "^1.0.6" } }, - "it-stream-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.4.tgz", - "integrity": "sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw==" - }, "it-take": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" }, + "it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "requires": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + } + } + }, "joycon": { "version": "3.1.1" }, @@ -31545,6 +29963,11 @@ "keccak": "^3.0.2" } }, + "keypair": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz", + "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg==" + }, "keyv": { "version": "4.3.3", "requires": { @@ -31728,151 +30151,552 @@ } }, "libp2p": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.38.0.tgz", - "integrity": "sha512-Wi/ptR69M5LuOrH8hwno98Dg/YeaDXmsyN2cd3vx/yuaEdcgz1RPdGtxxpyVP6J63eZbH07MYTvQcQHH5VhTkA==", - "requires": { - "@achingbrain/nat-port-mapper": "^1.0.3", - "@libp2p/components": "^2.0.3", - "@libp2p/connection": "^4.0.1", - "@libp2p/crypto": "^1.0.3", - "@libp2p/interface-address-manager": "^1.0.2", - "@libp2p/interface-connection": "^3.0.1", - "@libp2p/interface-connection-encrypter": "^2.0.1", - "@libp2p/interface-content-routing": "^1.0.2", - "@libp2p/interface-dht": "^1.0.1", - "@libp2p/interface-metrics": "^3.0.0", - "@libp2p/interface-peer-discovery": "^1.0.1", - "@libp2p/interface-peer-id": "^1.0.4", - "@libp2p/interface-peer-info": "^1.0.2", - "@libp2p/interface-peer-routing": "^1.0.1", - "@libp2p/interface-peer-store": "^1.2.1", - "@libp2p/interface-pubsub": "^2.0.1", - "@libp2p/interface-registrar": "^2.0.3", - "@libp2p/interface-stream-muxer": "^2.0.2", - "@libp2p/interface-transport": "^1.0.3", - "@libp2p/interfaces": "^3.0.3", - "@libp2p/logger": "^2.0.1", - "@libp2p/multistream-select": "^3.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id": "^1.1.15", - "@libp2p/peer-id-factory": "^1.0.18", - "@libp2p/peer-record": "^4.0.2", - "@libp2p/peer-store": "^3.1.3", - "@libp2p/tracked-map": "^2.0.1", - "@libp2p/utils": "^3.0.1", - "@multiformats/mafmt": "^11.0.2", - "@multiformats/multiaddr": "^10.3.3", - "abortable-iterator": "^4.0.2", - "any-signal": "^3.0.0", - "datastore-core": "^8.0.1", - "err-code": "^3.0.1", + "version": "0.32.5", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.5.tgz", + "integrity": "sha512-G21yQUdq4LaGDvjMi3ySmcx1cESl8ZsTG1BAfjzjx65DsZJKQ5GPZlamcv+Rwppk3OIplWoRnCu6gam/fI//bw==", + "requires": { + "@motrix/nat-api": "^0.3.1", + "@vascosantos/moving-average": "^1.1.0", + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "aggregate-error": "^3.1.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.1", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.0", + "es6-promisify": "^7.0.0", "events": "^3.3.0", "hashlru": "^2.3.0", - "interface-datastore": "^7.0.0", - "it-all": "^1.0.6", - "it-drain": "^1.0.5", - "it-filter": "^1.0.3", - "it-first": "^1.0.6", - "it-foreach": "^0.1.1", - "it-handshake": "^4.1.2", - "it-length-prefixed": "^8.0.2", - "it-map": "^1.0.6", - "it-merge": "^1.0.3", - "it-pair": "^2.0.2", - "it-pipe": "^2.0.3", - "it-sort": "^1.0.1", - "it-stream-types": "^1.0.4", + "interface-datastore": "^5.1.1", + "it-all": "^1.0.4", + "it-buffer": "^0.1.2", + "it-drain": "^1.0.3", + "it-filter": "^1.0.1", + "it-first": "^1.0.4", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2", + "it-map": "^1.0.4", + "it-merge": "^1.0.0", + "it-pipe": "^1.1.0", + "it-take": "^1.0.0", + "libp2p-crypto": "^0.19.4", + "libp2p-interfaces": "^1.0.0", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", "merge-options": "^3.0.4", - "multiformats": "^9.6.3", + "multiaddr": "^10.0.0", + "multiformats": "^9.0.0", + "multistream-select": "^2.0.0", "mutable-proxy": "^1.0.0", - "node-forge": "^1.3.1", + "node-forge": "^0.10.0", + "p-any": "^3.0.0", "p-fifo": "^1.0.0", - "p-retry": "^5.0.0", - "p-settle": "^5.0.0", - "private-ip": "^2.3.3", - "protons-runtime": "^3.0.1", + "p-retry": "^4.4.0", + "p-settle": "^4.1.1", + "peer-id": "^0.15.0", + "private-ip": "^2.1.0", + "protobufjs": "^6.10.2", "retimer": "^3.0.0", "sanitize-filename": "^1.6.3", "set-delayed-interval": "^1.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.3.2", + "streaming-iterables": "^6.0.0", + "timeout-abort-controller": "^1.1.1", "uint8arrays": "^3.0.0", - "wherearewe": "^2.0.0", + "varint": "^6.0.0", + "wherearewe": "^1.0.0", "xsalsa20": "^1.1.0" }, "dependencies": { - "@multiformats/multiaddr": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.5.0.tgz", - "integrity": "sha512-u4qHMyv25iAqCb9twJROoN1M8UDm8bureOCIzwz03fVhwJzV6DpgH1eFz9UAzDn7CpSShQ9SLS5MiC4hJjTfig==", + "abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", + "requires": { + "err-code": "^3.0.1", + "interface-store": "^1.0.2", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "interface-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", + "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, + "timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "requires": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + }, + "dependencies": { + "retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + } + } + } + } + }, + "libp2p-bootstrap": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/libp2p-bootstrap/-/libp2p-bootstrap-0.13.0.tgz", + "integrity": "sha512-8sXEZrikY+chKvMorkvOi9E/v9GvwsYr9DAEfzQZrOKQZByqhan1aXQKWrSpc4AxEv5/UopRzu1P47bkOi8wdw==", + "requires": { + "debug": "^4.3.1", + "mafmt": "^10.0.0", + "multiaddr": "^10.0.0", + "peer-id": "^0.15.0" + } + }, + "libp2p-crypto": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", + "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", + "requires": { + "err-code": "^3.0.1", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.1", + "multiformats": "^9.4.5", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "secp256k1": "^4.0.0", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "libp2p-interfaces": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz", + "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==", + "requires": { + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-length-prefixed": "^5.0.2", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.2", + "libp2p-crypto": "^0.20.0", + "multiaddr": "^10.0.0", + "multiformats": "^9.1.2", + "p-queue": "^6.6.2", + "peer-id": "^0.15.4", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "libp2p-crypto": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", + "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", "requires": { - "dns-over-http-resolver": "^2.1.0", "err-code": "^3.0.1", - "is-ip": "^5.0.0", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.4", "multiformats": "^9.4.5", + "noble-ed25519": "^1.2.6", + "noble-secp256k1": "^1.2.10", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", "uint8arrays": "^3.0.0", - "varint": "^6.0.0" + "ursa-optional": "^0.10.1" } }, - "ip-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } }, - "is-ip": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "requires": { - "ip-regex": "^5.0.0", - "super-regex": "^0.2.0" + "p-finally": "^1.0.0" } }, - "it-handshake": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "libp2p-kad-dht": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.24.2.tgz", + "integrity": "sha512-fBIwmta7LnoQ77giJRVqhnj9QKcws0SvzPWAsOy5AP3ByuxhcmqrHXTDI1iBnkvtCCegOuL41JkJOvaafu1XnA==", + "requires": { + "debug": "^4.3.1", + "err-code": "^3.0.0", + "hashlru": "^2.3.0", + "heap": "~0.2.6", + "interface-datastore": "^5.1.1", + "it-first": "^1.0.4", + "it-length": "^1.0.3", + "it-length-prefixed": "^5.0.2", + "it-pipe": "^1.1.0", + "k-bucket": "^5.1.0", + "libp2p-crypto": "^0.19.5", + "libp2p-interfaces": "^1.0.0", + "libp2p-record": "^0.10.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.5", + "p-map": "^4.0.0", + "p-queue": "^6.6.2", + "p-timeout": "^4.1.0", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.2", + "streaming-iterables": "^6.0.0", + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + }, + "dependencies": { + "interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", "requires": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^1.0.4", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" + "err-code": "^3.0.1", + "interface-store": "^1.0.2", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" } }, - "it-pair": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", - "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", + "interface-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", + "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "requires": { - "it-stream-types": "^1.0.3", - "p-defer": "^4.0.0" + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "dependencies": { + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + } } }, - "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "libp2p-mplex": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz", + "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==", + "requires": { + "abortable-iterator": "^3.0.2", + "bl": "^5.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.1", + "varint": "^6.0.0" + }, + "dependencies": { + "abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "requires": { + "get-iterator": "^1.0.2" + } }, - "it-reader": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.1.tgz", - "integrity": "sha512-C+YRk3OTufbKSJMNEonfEw+9F38llmwwZvqhkjb0xIgob7l4L3p01Yt43+bHRI8SSppAOgk5AKLqas7ea0UTAw==", + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + } + } + }, + "libp2p-noise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-4.0.0.tgz", + "integrity": "sha512-DCXRKh9Y4pkw4HEWKPpZbeoROilZA1nrQMHIVrJ4JDEMUKVRucJc9GZTFNzo4yJUZ+ayQAlrfbUARiPPFbpfng==", + "requires": { + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/hkdf": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.1", + "debug": "^4.3.1", + "it-buffer": "^0.1.1", + "it-length-prefixed": "^5.0.2", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.9", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.1", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", "requires": { - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.0.0" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" } }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "libp2p-record": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/libp2p-record/-/libp2p-record-0.10.6.tgz", + "integrity": "sha512-CbdO2P9DQn/DKll6R/J4nIw6Qt8xbUTfxYgJjpP9oz3izHKkpGQo0mPTe0NyuFTGIQ4OprrxqWqG5v8ZCGBqqw==", + "requires": { + "err-code": "^3.0.1", + "multiformats": "^9.4.5", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "libp2p-tcp": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.17.2.tgz", + "integrity": "sha512-SAdgDB4Rm0olPbyvanKP5JBaiRwbIOo0Nt++WYe1U2B6akg2uatsDOtulfpnc1gsL1B5vamnOpOzKaDj4kkt8g==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", + "multiaddr": "^10.0.0", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "requires": { + "get-iterator": "^1.0.2" + } }, - "p-defer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + } + } + }, + "libp2p-utils": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", + "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.3.0", + "err-code": "^3.0.1", + "ip-address": "^8.0.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^10.0.0", + "private-ip": "^2.1.1" + }, + "dependencies": { + "abortable-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", + "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" } } }, @@ -32129,15 +30953,6 @@ "long": { "version": "4.0.0" }, - "longbits": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/longbits/-/longbits-1.1.0.tgz", - "integrity": "sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==", - "requires": { - "byte-access": "^1.0.1", - "uint8arraylist": "^2.0.0" - } - }, "loose-envify": { "version": "1.4.0", "dev": true, @@ -32174,6 +30989,14 @@ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", "dev": true }, + "mafmt": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", + "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", + "requires": { + "multiaddr": "^10.0.0" + } + }, "make-dir": { "version": "3.1.0", "dev": true, @@ -32607,32 +31430,48 @@ "moment": ">= 2.9.0" } }, - "mortice": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "ms": { + "version": "2.1.3" + }, + "multiaddr": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", + "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", "requires": { - "nanoid": "^4.0.0", - "observable-webworkers": "^2.0.1", - "p-queue": "^7.2.0", - "p-timeout": "^6.0.0" + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multiformats": "^9.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" }, "dependencies": { - "nanoid": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==" + "dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "requires": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } }, - "p-timeout": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.0.0.tgz", - "integrity": "sha512-5iS61MOdUMemWH9CORQRxVXTp9g5K8rPnI9uQpo97aWgsH3vVXKjkIhDi+OgIDmN3Ly9+AZ2fZV01Wut1yzfKA==" + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } } } }, - "ms": { - "version": "2.1.3" - }, "multibase": { "version": "0.6.1", "requires": { @@ -32692,6 +31531,23 @@ } } }, + "multistream-select": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", + "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", + "requires": { + "bl": "^5.0.0", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "it-first": "^1.0.6", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.0", + "it-pipe": "^1.0.1", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0", + "uint8arrays": "^3.0.0" + } + }, "mutable-proxy": { "version": "1.0.0" }, @@ -32748,6 +31604,11 @@ } } }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, "nano-json-stream-parser": { "version": "0.1.2" }, @@ -32762,10 +31623,10 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" }, - "native-fetch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", + "native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", "requires": {} }, "natural-compare": { @@ -32822,6 +31683,16 @@ "tslib": "^2.0.3" } }, + "noble-ed25519": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz", + "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==" + }, + "noble-secp256k1": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz", + "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==" + }, "nock": { "version": "13.2.9", "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", @@ -32849,6 +31720,11 @@ "formdata-polyfill": "^4.0.10" } }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, "node-gyp-build": { "version": "4.3.0" }, @@ -32959,10 +31835,6 @@ "aggregate-error": "^3.0.0" } }, - "p-try": { - "version": "2.2.0", - "dev": true - }, "path-exists": { "version": "4.0.0", "dev": true @@ -33050,11 +31922,6 @@ "http-https": "^1.0.0" } }, - "observable-webworkers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==" - }, "on-exit-leak-free": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", @@ -33103,6 +31970,22 @@ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, + "p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "requires": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -33143,62 +32026,63 @@ }, "p-map": { "version": "4.0.0", - "dev": true, "requires": { "aggregate-error": "^3.0.0" } }, - "p-queue": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", - "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", - "requires": { - "eventemitter3": "^4.0.7", - "p-timeout": "^5.0.2" - } - }, "p-reflect": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-3.1.0.tgz", - "integrity": "sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==" }, "p-retry": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", - "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "requires": { - "@types/retry": "0.12.1", + "@types/retry": "0.12.0", "retry": "^0.13.1" } }, "p-settle": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-5.1.0.tgz", - "integrity": "sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", "requires": { - "p-limit": "^4.0.0", - "p-reflect": "^3.1.0" + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" }, "dependencies": { "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "yocto-queue": "^1.0.0" + "p-try": "^2.0.0" } - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" } } }, - "p-timeout": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" + "p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "requires": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-hash": { "version": "4.0.0", @@ -33303,6 +32187,67 @@ "sha.js": "^2.4.8" } }, + "peer-id": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz", + "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==", + "requires": { + "class-is": "^1.1.0", + "libp2p-crypto": "^0.20.0", + "minimist": "^1.2.5", + "multiformats": "^9.4.5", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "libp2p-crypto": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", + "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", + "requires": { + "err-code": "^3.0.1", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.4", + "multiformats": "^9.4.5", + "noble-ed25519": "^1.2.6", + "noble-secp256k1": "^1.2.10", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" + } + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "pem-jwk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", + "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", + "requires": { + "asn1.js": "^5.0.1" + } + }, "performance-now": { "version": "2.1.0" }, @@ -33531,41 +32476,6 @@ "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", "dev": true }, - "protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" - } - } - }, - "protons-runtime": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-3.1.0.tgz", - "integrity": "sha512-S1iSPQC0McdHKJRi0XcATBkWgwWPx46UDfrnshYDXBvGHSYqkFtn4MQ8Gatf67w7FzFtHivA+Hb0ZPq56upG8w==", - "requires": { - "protobufjs": "^7.0.0", - "uint8arraylist": "^2.3.2" - } - }, "proxy-addr": { "version": "2.0.7", "requires": { @@ -33652,11 +32562,6 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, - "rate-limiter-flexible": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.3.10.tgz", - "integrity": "sha512-bXqRBBb85WmnJemw9+xLdA7ezLXwZ+hXcOD8ZzfGMhbus4jHRrjTMXZ1kJqpKnpGu34scZc6f0qYNSxBwO7yrg==" - }, "raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", @@ -33838,6 +32743,14 @@ "dev": true, "peer": true }, + "react-native-fetch-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "requires": { + "p-defer": "^3.0.0" + } + }, "readable-stream": { "version": "3.6.0", "requires": { @@ -34938,6 +33851,11 @@ "streamify-string": { "version": "1.0.1" }, + "streaming-iterables": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz", + "integrity": "sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==" + }, "streamsearch": { "version": "1.1.0" }, @@ -35026,16 +33944,6 @@ "strip-json-comments": { "version": "3.1.1" }, - "super-regex": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", - "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", - "requires": { - "clone-regexp": "^3.0.0", - "function-timeout": "^0.1.0", - "time-span": "^5.1.0" - } - }, "supports-color": { "version": "5.5.0", "dev": true, @@ -35264,25 +34172,9 @@ "through": { "version": "2.3.8" }, - "time-span": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", - "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", - "requires": { - "convert-hrtime": "^5.0.0" - } - }, "timed-out": { "version": "4.0.1" }, - "timeout-abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", - "requires": { - "retimer": "^3.0.0" - } - }, "tmp": { "version": "0.2.1", "dev": true, @@ -35410,25 +34302,6 @@ "is-typedarray": "^1.0.0" } }, - "uint8-varint": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.3.tgz", - "integrity": "sha512-ESs/P/AYPy2wWZCT2V6Tg7RPqA6jzlhJbdsNPFvbDeIrDxj12dwTcm0rD9yFlnmgEf6vRBCZrP3d0SiRTcPwSQ==", - "requires": { - "byte-access": "^1.0.0", - "longbits": "^1.1.0", - "uint8arraylist": "^2.0.0", - "uint8arrays": "^3.1.0" - } - }, - "uint8arraylist": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.3.2.tgz", - "integrity": "sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw==", - "requires": { - "uint8arrays": "^3.1.0" - } - }, "uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -35508,6 +34381,11 @@ "universalify": { "version": "0.1.2" }, + "unordered-array-remove": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", + "integrity": "sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -35587,6 +34465,15 @@ "url-to-options": { "version": "1.0.1" }, + "ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + } + }, "utf-8-validate": { "version": "5.0.9", "requires": { @@ -36059,9 +34946,9 @@ } }, "wherearewe": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", - "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.2.tgz", + "integrity": "sha512-HyLZ7n1Yox+w1qWaFEgP/sMs5D7ka2UXmoVNaY0XzbEHLGljo4ScBchYm6cWRYNO33tmFX3Mgg4BiZkDOjihyw==", "requires": { "is-electron": "^2.2.0" } @@ -36327,10 +35214,6 @@ "p-limit": "^2.2.0" } }, - "p-try": { - "version": "2.2.0", - "dev": true - }, "path-exists": { "version": "4.0.0", "dev": true diff --git a/package.json b/package.json index 9a882441f7..63b14a3974 100644 --- a/package.json +++ b/package.json @@ -61,17 +61,8 @@ "solhint": "^3.3.7" }, "dependencies": { - "@chainsafe/libp2p-noise": "^8.0.1", "@comunica/query-sparql": "^2.4.3", - "@libp2p/bootstrap": "^2.0.0", - "@libp2p/crypto": "^1.0.4", - "@libp2p/mplex": "^5.0.0", - "@libp2p/peer-collections": "^2.0.0", - "@libp2p/peer-id-factory": "^1.0.18", - "@libp2p/tcp": "^3.1.2", - "@multiformats/multiaddr": "^11.0.1", "@polkadot/api": "^9.3.2", - "@tracelabs/kad-dht": "3.0.6", "app-root-path": "^3.1.0", "assertion-tools": "^1.0.9", "async": "^3.2.4", @@ -89,24 +80,29 @@ "graphdb": "^2.0.2", "ip": "^1.1.8", "it-all": "^1.0.6", - "it-filter": "^1.0.3", - "it-foreach": "^0.1.1", - "it-length-prefixed": "^8.0.2", + "it-concat": "^2.0.0", + "it-length-prefixed": "^5.0.3", "it-map": "^1.0.6", - "it-merge": "^1.0.4", - "it-pipe": "^2.0.4", + "it-pipe": "^1.1.0", "it-sort": "^1.0.1", "it-take": "^1.0.2", "jsonld": "^8.1.0", "jsonschema": "^1.4.1", "jsonwebtoken": "^8.5.1", "keccak256": "^1.0.6", - "libp2p": "^0.38.0", + "libp2p": "^0.32.4", + "libp2p-bootstrap": "^0.13.0", + "libp2p-kad-dht": "^0.24.2", + "libp2p-mplex": "^0.10.7", + "libp2p-noise": "^4.0.0", + "libp2p-tcp": "^0.17.2", "merkletreejs": "^0.2.32", "ms": "^2.1.3", + "multiaddr": "^10.0.0", "multiformats": "^9.8.1", "mysql2": "^2.3.3", "p-iteration": "^1.1.8", + "peer-id": "^0.15.3", "pino": "^8.4.2", "pino-pretty": "^9.1.0", "rc": "^1.2.8", diff --git a/src/commands/common/send-telemetry-command.js b/src/commands/common/send-telemetry-command.js index f4fada5bbe..2108ec510d 100644 --- a/src/commands/common/send-telemetry-command.js +++ b/src/commands/common/send-telemetry-command.js @@ -30,7 +30,7 @@ class SendTelemetryCommand extends Command { const signalingMessage = { nodeData: { version: pjson.version, - identity: this.networkModuleManager.getPeerId().toString(), + identity: this.networkModuleManager.getPeerId()._idB58String, hostname: this.config.hostname, operational_wallet: this.blockchainModuleManager.getPublicKey(), management_wallet: this.blockchainModuleManager.getManagementKey(), diff --git a/src/commands/protocols/common/find-nodes-command.js b/src/commands/protocols/common/find-nodes-command.js index cdf91903ec..cf0ffc9d79 100644 --- a/src/commands/protocols/common/find-nodes-command.js +++ b/src/commands/protocols/common/find-nodes-command.js @@ -18,11 +18,15 @@ class FindNodesCommand extends Command { this.errorType = errorType; this.logger.debug(`Searching for closest node(s) for keyword ${keyword}`); - // TODO: implement protocol selection - const closestNodes = (await this.findNodes(keyword, operationId)).map((node) => ({ - id: node.id, - protocol: networkProtocols[0], - })); + const closestNodes = []; + for (const node of await this.findNodes(keyword, operationId)) { + for (const protocol of networkProtocols) { + if (node.protocols.includes(protocol)) { + closestNodes.push({ id: node.id, protocol }); + break; + } + } + } this.logger.debug(`Found ${closestNodes.length} node(s) for keyword ${keyword}`); @@ -53,85 +57,11 @@ class FindNodesCommand extends Command { OPERATION_ID_STATUS.FIND_NODES_START, ); - const localPeers = (await this.networkModuleManager.findNodesLocal(keyword)).map((peer) => - peer.toString(), - ); - - const { nodes: closestNodes, telemetryData } = await this.networkModuleManager.findNodes( - keyword, - ); - - const promises = []; - for (const telemetry of telemetryData) { - const { - peerId, - openConnectionStart, - createStreamStart, - sendMessageStart, - sendMessageEnd, - } = telemetry; - const stringifiedPeerId = peerId.toString(); + const closestNodes = await this.networkModuleManager.findNodes(keyword); - promises.concat([ - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_OPEN_CONNECTION_START, - stringifiedPeerId, - null, - openConnectionStart, - ), - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_OPEN_CONNECTION_END, - stringifiedPeerId, - null, - createStreamStart, - ), - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_CREATE_STREAM_START, - stringifiedPeerId, - null, - createStreamStart, - ), - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_CREATE_STREAM_END, - stringifiedPeerId, - null, - sendMessageStart, - ), - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_SEND_MESSAGE_START, - stringifiedPeerId, - null, - sendMessageStart, - ), - this.operationIdService.updateOperationIdStatusWithValues( - operationId, - OPERATION_ID_STATUS.FIND_NODES_SEND_MESSAGE_END, - stringifiedPeerId, - null, - sendMessageEnd, - ), - ]); - } - await Promise.all(promises); - - let differences = 0; - for (const closestNode of closestNodes) { - if (!localPeers.includes(closestNode.id.toString())) { - differences += 1; - } - } - const routingTableSize = this.networkModuleManager.getRoutingTableSize(); - - await this.operationIdService.updateOperationIdStatusWithValues( + await this.operationIdService.updateOperationIdStatus( operationId, OPERATION_ID_STATUS.FIND_NODES_END, - differences, - routingTableSize, ); return closestNodes; diff --git a/src/commands/protocols/common/protocol-message-command.js b/src/commands/protocols/common/protocol-message-command.js index e20a6c3959..38a79fa094 100644 --- a/src/commands/protocols/common/protocol-message-command.js +++ b/src/commands/protocols/common/protocol-message-command.js @@ -3,8 +3,6 @@ import { NETWORK_MESSAGE_TYPES, OPERATION_REQUEST_STATUS, OPERATION_STATUS, - OPERATION_ID_STATUS, - ERROR_TYPE, } from '../../../constants/constants.js'; class ProtocolMessageCommand extends Command { @@ -55,37 +53,6 @@ class ProtocolMessageCommand extends Command { message, ); - if (response?.telemetryData?.start && response?.telemetryData?.end) { - if (response?.telemetryData?.error) { - this.operationIdService.emitChangeEvent( - OPERATION_ID_STATUS.FAILED, - operationId, - response?.telemetryData?.error.message, - ERROR_TYPE.DIAL_PROTOCOL_ERROR, - response.telemetryData.start, - ); - } else { - const networkInfo = response.telemetryData.networkInfo - ? `${response.telemetryData.networkInfo.publicIp}:${response.telemetryData.networkInfo.port}` - : null; - - await this.operationIdService.emitChangeEvent( - OPERATION_ID_STATUS.DIAL_PROTOCOL_START, - operationId, - node.id.toString(), - networkInfo, - response.telemetryData.start, - ); - await this.operationIdService.emitChangeEvent( - OPERATION_ID_STATUS.DIAL_PROTOCOL_END, - operationId, - node.id.toString(), - networkInfo, - response.telemetryData.end, - ); - } - } - switch (response.header.messageType) { case NETWORK_MESSAGE_TYPES.RESPONSES.BUSY: return this.handleBusy(command, response.data); diff --git a/src/commands/protocols/common/protocol-schedule-messages-command.js b/src/commands/protocols/common/protocol-schedule-messages-command.js index 96da633adb..f06e5d06ae 100644 --- a/src/commands/protocols/common/protocol-schedule-messages-command.js +++ b/src/commands/protocols/common/protocol-schedule-messages-command.js @@ -17,7 +17,7 @@ class ProtocolScheduleMessagesCommand extends Command { const currentBatchNodes = leftoverNodes.slice(0, batchSize); const currentBatchLeftoverNodes = batchSize < leftoverNodes.length ? leftoverNodes.slice(batchSize) : []; - currentBatchNodes.forEach((node) => nodesSeen.push(node.id.toString())); + currentBatchNodes.forEach((node) => nodesSeen.push(node.id._idB58String)); await this.operationIdService.updateOperationIdStatus(operationId, this.startEvent); diff --git a/src/constants/constants.js b/src/constants/constants.js index ea35bc000d..407012e5a3 100644 --- a/src/constants/constants.js +++ b/src/constants/constants.js @@ -1,5 +1,9 @@ export const SCHEMA_CONTEXT = 'http://schema.org/'; +export const LIBP2P_KEY_DIRECTORY = 'libp2p'; + +export const LIBP2P_KEY_FILENAME = 'privateKey'; + export const TRIPLE_STORE_CONNECT_MAX_RETRIES = 10; export const TRIPLE_STORE_CONNECT_RETRY_FREQUENCY = 10; diff --git a/src/migration/base-migration.js b/src/migration/base-migration.js index 44e5a0d855..60b595d26a 100644 --- a/src/migration/base-migration.js +++ b/src/migration/base-migration.js @@ -28,15 +28,18 @@ class BaseMigration { this.fileService.getMigrationFolderPath(), this.migrationName, ); - if (await fs.exists(migrationFilePath)) { + if (await this.fileService.fileExists(migrationFilePath)) { return true; } - this.logger.info(`Starting ${this.migrationName} migration.`); - this.startedTimestamp = Date.now(); return false; } - async finalizeMigration(migrationPath = null) { + async migrate(migrationPath = null) { + this.logger.info(`Starting ${this.migrationName} migration.`); + this.startedTimestamp = Date.now(); + + await this.executeMigration(); + const migrationFolderPath = migrationPath || this.fileService.getMigrationFolderPath(); await fs.ensureDir(migrationFolderPath); const migrationFilePath = path.join(migrationFolderPath, this.migrationName); diff --git a/src/migration/network-private-key-migration.js b/src/migration/network-private-key-migration.js new file mode 100644 index 0000000000..bcf7a04929 --- /dev/null +++ b/src/migration/network-private-key-migration.js @@ -0,0 +1,20 @@ +import { join } from 'path'; +import { mkdir, writeFile } from 'fs/promises'; +import BaseMigration from './base-migration.js'; +import { LIBP2P_KEY_DIRECTORY, LIBP2P_KEY_FILENAME } from '../constants/constants.js'; + +class NetworkPrivateKeyMigration extends BaseMigration { + async executeMigration() { + const networkPrivateKey = + this.config.modules?.network?.implementation?.['libp2p-service']?.config?.privateKey; + + if (networkPrivateKey) { + const directoryPath = join(this.config.appDataPath, LIBP2P_KEY_DIRECTORY); + const fullPath = join(directoryPath, LIBP2P_KEY_FILENAME); + await mkdir(directoryPath, { recursive: true }); + await writeFile(fullPath, networkPrivateKey); + } + } +} + +export default NetworkPrivateKeyMigration; diff --git a/src/modules/base-module-manager.js b/src/modules/base-module-manager.js index 4366c9594f..a6d421b209 100644 --- a/src/modules/base-module-manager.js +++ b/src/modules/base-module-manager.js @@ -48,6 +48,7 @@ class BaseModuleManager { return false; } + implementationConfig.config.appDataPath = this.config.appDataPath; // eslint-disable-next-line no-await-in-loop const ModuleClass = (await import(implementationConfig.package)).default; const module = new ModuleClass(); diff --git a/src/modules/network/implementation/libp2p-service.js b/src/modules/network/implementation/libp2p-service.js index 335209b197..29f8514003 100644 --- a/src/modules/network/implementation/libp2p-service.js +++ b/src/modules/network/implementation/libp2p-service.js @@ -1,46 +1,44 @@ -/* eslint-disable import/no-unresolved */ -import { createLibp2p } from 'libp2p'; +import libp2p from 'libp2p'; +import KadDHT from 'libp2p-kad-dht'; +import { join } from 'path'; +import Bootstrap, { tag } from 'libp2p-bootstrap'; +import { NOISE } from 'libp2p-noise'; +import MPLEX from 'libp2p-mplex'; +import TCP from 'libp2p-tcp'; +import pipe from 'it-pipe'; +import { Multiaddr } from 'multiaddr'; +import { encode, decode } from 'it-length-prefixed'; import { sha256 } from 'multiformats/hashes/sha2'; -import { multiaddr } from '@multiformats/multiaddr'; -import { Bootstrap } from '@libp2p/bootstrap'; -import { Mplex } from '@libp2p/mplex'; -import { Noise } from '@chainsafe/libp2p-noise'; -import { KadDHT } from '@tracelabs/kad-dht'; -import { TCP } from '@libp2p/tcp'; -import { pipe } from 'it-pipe'; -import * as lp from 'it-length-prefixed'; -import { unmarshalPrivateKey } from '@libp2p/crypto/keys'; -import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; -import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; -import { xor as uint8ArrayXor } from 'uint8arrays/xor'; -import { compare as uint8ArrayCompare } from 'uint8arrays/compare'; import map from 'it-map'; -import { createFromPrivKey, createRSAPeerId } from '@libp2p/peer-id-factory'; -import { peerIdFromString } from '@libp2p/peer-id'; +import { create as _create, createFromPrivKey, createFromB58String } from 'peer-id'; import { InMemoryRateLimiter } from 'rolling-rate-limiter'; import toobusy from 'toobusy-js'; import { v5 as uuidv5 } from 'uuid'; -import { PeerSet } from '@libp2p/peer-collections'; -import filter from 'it-filter'; -import merge from 'it-merge'; -import all from 'it-all'; -import each from 'it-foreach'; +import { xor as uint8ArrayXor } from 'uint8arrays/xor'; +import { compare as uint8ArrayCompare } from 'uint8arrays/compare'; import sort from 'it-sort'; import take from 'it-take'; -import ip from 'ip'; -import os from 'os'; +import all from 'it-all'; +import { mkdir, writeFile, readFile, stat } from 'fs/promises'; import { NETWORK_API_RATE_LIMIT, NETWORK_API_SPAM_DETECTION, NETWORK_MESSAGE_TYPES, NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES, - DHT_TYPES, + LIBP2P_KEY_DIRECTORY, + LIBP2P_KEY_FILENAME, } from '../../../constants/constants.js'; const initializationObject = { - streamMuxers: [new Mplex()], - connectionEncryption: [new Noise()], - transports: [new TCP()], + addresses: { + listen: ['/ip4/0.0.0.0/tcp/9000'], + }, + modules: { + transport: [TCP], + streamMuxer: [MPLEX], + connEncryption: [NOISE], + dht: KadDHT, + }, }; class Libp2pService { @@ -48,37 +46,40 @@ class Libp2pService { this.config = config; this.logger = logger; - initializationObject.dht = this._initializeDHT(this.config.dht); initializationObject.peerRouting = this.config.peerRouting; - initializationObject.connectionManager = this.config.connectionManager; + initializationObject.config = { + dht: { + enabled: true, + ...this.config.dht, + }, + }; + initializationObject.dialer = this.config.connectionManager; if (this.config.bootstrap.length > 0) { - initializationObject.peerDiscovery = [ - new Bootstrap({ - interval: 60e3, + initializationObject.modules.peerDiscovery = [Bootstrap]; + initializationObject.config.peerDiscovery = { + autoDial: true, + [tag]: { + enabled: true, list: this.config.bootstrap, - }), - ]; + }, + }; } - initializationObject.addresses = { - listen: [`/ip4/0.0.0.0/tcp/${this.config.port}`], + listen: [`/ip4/0.0.0.0/tcp/${this.config.port}`], // for production + // announce: ['/dns4/auto-relay.libp2p.io/tcp/443/wss/p2p/QmWDn2LY8nannvSWJzruUYoLZ4vV83vfCBwd8DipvdgQc3'] }; - - if (this._usePublicIp(this.config.publicIp)) { - initializationObject.addresses.announce = [ - `/ip4/${this.config.publicIp}/tcp/${this.config.port}`, - ]; - } - let id; if (!this.config.peerId) { + this.config.privateKey = await this.readPrivateKeyFromFile(); if (!this.config.privateKey) { - id = await createRSAPeerId({ bits: 1024 }); - this.config.privateKey = uint8ArrayToString(id.privateKey, 'base64pad'); + id = await _create({ bits: 1024, keyType: 'RSA' }); + this.config.privateKey = id.toJSON().privKey; + if (process.env.NODE_ENV === 'development') { + await this.savePrivateKeyInFile(this.config.privateKey); + } } else { - const encoded = uint8ArrayFromString(this.config.privateKey, 'base64pad'); - id = await createFromPrivKey(await unmarshalPrivateKey(encoded)); + id = await createFromPrivKey(this.config.privateKey); } this.config.peerId = id; } @@ -97,14 +98,51 @@ class Libp2pService { * } */ this.sessions = {}; - this.node = await createLibp2p(initializationObject); + this.node = await libp2p.create(initializationObject); + this._initializeNodeListeners(); await this.node.start(); - const port = parseInt(this.node.getMultiaddrs().toString().split('/')[4], 10); + const port = parseInt(this.node.multiaddrs.toString().split('/')[4], 10); + const peerId = this.node.peerId._idB58String; + this.config.id = peerId; + this.logger.info(`Network ID is ${peerId}, connection port is ${port}`); + } - this.config.id = this.node.peerId.toString(); - this.logger.info( - `Network ID is ${this.node.peerId.toString()}, connection port is ${port}`, - ); + async savePrivateKeyInFile(privateKey) { + const { fullPath, directoryPath } = this.getKeyPath(); + await mkdir(directoryPath, { recursive: true }); + await writeFile(fullPath, privateKey); + } + + getKeyPath() { + const directoryPath = join(this.config.appDataPath, LIBP2P_KEY_DIRECTORY); + const fullPath = join(directoryPath, LIBP2P_KEY_FILENAME); + return { fullPath, directoryPath }; + } + + async readPrivateKeyFromFile() { + const keyPath = this.getKeyPath(); + if (await this.fileExists(keyPath.fullPath)) { + const key = (await readFile(keyPath.fullPath)).toString(); + return key; + } + } + + async fileExists(filePath) { + try { + await stat(filePath); + return true; + } catch (e) { + return false; + } + } + + _initializeNodeListeners() { + this.node.on('peer:discovery', (peer) => { + this._onPeerDiscovery(peer); + }); + this.node.connectionManager.on('peer:connect', (connection) => { + this._onPeerConnect(connection); + }); } _initializeRateLimiters() { @@ -126,67 +164,31 @@ class Libp2pService { this.blackList = {}; } - _initializeDHT(dhtConfig) { - const dhtTypes = Object.values(DHT_TYPES); - - if ( - !dhtConfig?.type || - typeof dhtConfig.type !== 'string' || - !dhtTypes.includes(dhtConfig.type) - ) - throw Error(`Invalid dht type found in config. Allowed dht types: ${dhtTypes}`); - - const dualKadDht = new KadDHT({ kBucketSize: dhtConfig?.kBucketSize, clientMode: false }); - this.dhtType = dhtConfig.type.toLowerCase(); - - if (this.dhtType === DHT_TYPES.WAN) return dualKadDht.wan; - if (this.dhtType === DHT_TYPES.LAN) return dualKadDht.lan; - return dualKadDht; + _onPeerDiscovery(peer) { + this.logger.trace(`Node ${this.node.peerId._idB58String} discovered ${peer._idB58String}`); } - _usePublicIp(publicIp) { - if (process.env.NODE_ENV !== 'testnet') return false; - - for (const [, netAddrs] of Object.entries(os.networkInterfaces())) { - if (netAddrs != null) { - for (const netAddr of netAddrs) { - if (netAddr.family === 'IPv4') { - if (!ip.isPrivate(netAddr.address)) { - return false; - } - } - } - } - } - - if (!publicIp) { - throw Error( - "Public Ip not found. Please specify your node's public ip in the config file.", - ); - } - if (!ip.isV4Format(publicIp)) { - throw Error('Specified Ip must be in v4 format.'); - } - if (!ip.isPublic(publicIp)) { - throw Error('Specified Ip must be public.'); - } - - return true; + _onPeerConnect(connection) { + this.logger.trace( + `Node ${ + this.node.peerId._idB58String + } connected to ${connection.remotePeer.toB58String()}`, + ); } getMultiaddrs() { - return this.node.getMultiaddrs(); + return this.node.multiaddrs; } - async getProtocols(peerId) { + getProtocols(peerId) { return this.node.peerStore.protoBook.get(peerId); } - async getAddresses(peerId) { + getAddresses(peerId) { return this.node.peerStore.addressBook.get(peerId); } - async serializePeer(peer) { + serializePeer(peer) { return { id: peer.id.toString(), multiaddrs: (peer.multiaddrs ?? []).map((addr) => addr.multiaddr), @@ -194,18 +196,16 @@ class Libp2pService { }; } - async serializePeers(peers) { - return Promise.all(peers.map((peer) => this.serializePeer(peer))); + serializePeers(peers) { + return peers.map((peer) => this.serializePeer(peer)); } - async deserializePeer(serializedPeer) { - const peerId = peerIdFromString(serializedPeer.id); - const multiaddrs = serializedPeer.multiaddrs.map((addr) => multiaddr(addr)); + deserializePeer(serializedPeer) { + const peerId = createFromB58String(serializedPeer.id); + const multiaddrs = serializedPeer.multiaddrs.map((addr) => new Multiaddr(addr)); - await Promise.all([ - this.node.peerStore.addressBook.add(peerId, multiaddrs), - this.node.peerStore.protoBook.add(peerId, serializedPeer.protocols), - ]); + this.node.peerStore.addressBook.add(peerId, multiaddrs); + this.node.peerStore.protoBook.add(peerId, serializedPeer.protocols); return { id: peerId, @@ -214,8 +214,8 @@ class Libp2pService { }; } - async deserializePeers(serializedPeers) { - return Promise.all(serializedPeers.map((peer) => this.deserializePeer(peer))); + deserializePeers(serializedPeers) { + return serializedPeers.map((peer) => this.deserializePeer(peer)); } async sortPeers(key, peers, count = this.config.kBucketSize) { @@ -239,76 +239,36 @@ class Libp2pService { return Buffer.from((await sha256.digest(encodedKey)).digest); } - async fromPeerId(peerId) { - return { - id: peerId, - multiaddrs: await this.getAddresses(peerId), - protocols: await this.getProtocols(peerId), - }; - } - async findNodesLocal(key) { - const encodedKey = new TextEncoder().encode(key); - const keyHash = Buffer.from((await sha256.digest(encodedKey)).digest); + const keyHash = await this.toHash(new TextEncoder().encode(key)); - let peers = - this.dhtType === DHT_TYPES.DUAL - ? await all( - merge( - this.node.dht.wan.routingTable.closestPeers( - keyHash, - this.config.kBucketSize, - ), - this.node.dht.lan.routingTable.closestPeers( - keyHash, - this.config.kBucketSize, - ), - ), - ) - : await this.node.dht.routingTable.closestPeers(keyHash, this.config.kBucketSize); + const nodes = this.node._dht.routingTable.closestPeers(keyHash, this.config.kBucketSize); - peers = await all(map(new PeerSet(peers), async (peerId) => this.fromPeerId(peerId))); + const result = []; + for await (const node of nodes) { + result.push({ + id: node, + multiaddrs: this.getAddresses(node), + protocols: this.getProtocols(node), + }); + } - return this.dhtType === DHT_TYPES.DUAL ? this.sortPeers(key, peers) : peers; + return result; } async findNodes(key) { const encodedKey = new TextEncoder().encode(key); - const self = this; - const telemetryData = []; - const peersSeen = new PeerSet(); - const peers = await all( - pipe( - self.node.dht.getClosestPeers(encodedKey), - (source) => - each(source, async (event) => { - if (event.telemetry) { - telemetryData.push({ ...event.telemetry, peerId: event.from }); - } - }), - (source) => filter(source, (event) => event.name === 'FINAL_PEER'), - (source) => map(source, async (event) => event.peer), - (source) => - filter(source, async (peer) => { - if (!peersSeen.has(peer.id)) { - peersSeen.add(peer.id); - return true; - } - return false; - }), - ), - ); - - const finalPeers = - this.dhtType === DHT_TYPES.DUAL ? await this.sortPeers(key, peers) : peers; - - return { nodes: finalPeers, telemetryData }; - } + const nodes = this.node._dht.peerRouting.getClosestPeers(encodedKey); + const result = []; + for await (const node of nodes) { + result.push({ + id: node, + multiaddrs: this.getAddresses(node), + protocols: this.getProtocols(node), + }); + } - getRoutingTableSize() { - return this.dhtType === DHT_TYPES.DUAL - ? this.node.dht.wan.routingTable.size - : this.node.dht.routingTable.size; + return result; } getPeers() { @@ -322,9 +282,9 @@ class Libp2pService { async handleMessage(protocol, handler) { this.logger.info(`Enabling network protocol: ${protocol}`); - await this.node.handle(protocol, async (handlerProps) => { + this.node.handle(protocol, async (handlerProps) => { const { stream } = handlerProps; - const remotePeerId = handlerProps.connection.remotePeer.toString(); + const remotePeerId = handlerProps.connection.remotePeer._idB58String; const { message, valid, busy } = await this._readMessageFromStream( stream, this.isRequestValid.bind(this), @@ -419,56 +379,20 @@ class Libp2pService { const keywordUuid = uuidv5(keyword, uuidv5.URL); this.logger.trace( - `Sending message to ${remotePeerId.toString()}: event=${protocol}, messageType=${messageType}, operationId: ${operationId}, keywordUuid: ${keywordUuid}`, + `Sending message to ${remotePeerId._idB58String}: event=${protocol}, messageType=${messageType}, operationId: ${operationId}, keywordUuid: ${keywordUuid}`, ); - // const sessionStream = this.getSessionStream(operationId, remotePeerId.toString()); + // const sessionStream = this.getSessionStream(operationId, remotePeerId._idB58String); // if (!sessionStream) { - - const networkInfo = ((await this.node.peerStore.addressBook.get(remotePeerId)) ?? []) - .map((addr) => addr.multiaddr) - .filter((addr) => addr.isThinWaistAddress()) - .map((addr) => addr.toString().split('/')) - .filter((splittedAddr) => !ip.isPrivate(splittedAddr[2])) - .map((splittedAddr) => ({ publicIp: splittedAddr[2], port: splittedAddr[4] }))[0]; - - this.logger.trace( - `Dialing remotePeerId: ${remotePeerId.toString()} with public ip: ${ - networkInfo?.publicIp - }:${networkInfo?.port} for protocol: ${protocol}`, - ); - - let stream; - let dialStart; - let dialEnd; - try { - dialStart = Date.now(); - stream = await this.node.dialProtocol(remotePeerId, protocol); - dialEnd = Date.now(); - } catch (error) { - dialEnd = Date.now(); - this.logger.warn( - `Unable to dial peer: ${remotePeerId.toString()} with protocol: ${protocol}. Dial execution time: ${ - dialEnd - dialStart - } ms. Error: ${error.message}`, - ); - return { - header: { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.NACK }, - data: {}, - telemetryData: { start: dialStart, end: dialEnd, networkInfo, error }, - }; - } this.logger.trace( - `Created stream for peer: ${remotePeerId.toString()}, protocol: ${protocol}. Dial execution time: ${ - dialEnd - dialStart - } ms.`, + `Dialing remotePeerId: ${remotePeerId._idB58String} for protocol: ${protocol}`, ); - + const { stream } = await this.node.dialProtocol(remotePeerId, protocol); // } else { // stream = sessionStream; // } - this.updateSessionStream(operationId, keywordUuid, remotePeerId.toString(), stream); + this.updateSessionStream(operationId, keywordUuid, remotePeerId._idB58String, stream); const streamMessage = this.createStreamMessage( message, @@ -476,15 +400,16 @@ class Libp2pService { keywordUuid, messageType, ); + await this._sendMessageToStream(stream, streamMessage); - // if (!this.sessions[remotePeerId.toString()]) { - // this.sessions[remotePeerId.toString()] = { + // if (!this.sessions[remotePeerId._idB58String]) { + // this.sessions[remotePeerId._idB58String] = { // [operationId]: { // stream // } // } // } else { - // this.sessions[remotePeerId.toString()][operationId] = { + // this.sessions[remotePeerId._idB58String][operationId] = { // stream // } // } @@ -494,18 +419,13 @@ class Libp2pService { const { message: response, valid } = await this._readMessageFromStream( stream, this.isResponseValid.bind(this), - remotePeerId.toString(), + remotePeerId._idB58String, ); - this.logger.trace( - `Receiving response from ${remotePeerId.toString()} : event=${protocol}, messageType=${ - response.header.messageType - };`, + `Receiving response from ${remotePeerId._idB58String} : event=${protocol}, messageType=${response.header.messageType};`, ); - return valid - ? { ...response, telemetryData: { start: dialStart, end: dialEnd, networkInfo } } - : { telemetryData: { start: dialStart, end: dialEnd, networkInfo } }; + return valid ? response : null; } async sendMessageResponse( @@ -574,9 +494,9 @@ class Libp2pService { await pipe( chunks, // turn strings into buffers - (source) => map(source, (string) => uint8ArrayFromString(string)), + (source) => map(source, (string) => Buffer.from(string)), // Encode with length prefix (so receiving side knows how much data is coming) - lp.encode(), + encode(), // Write to the stream (the sink) stream.sink, ); @@ -587,9 +507,9 @@ class Libp2pService { // Read from the stream (the source) stream.source, // Decode length-prefixed data - lp.decode(), + decode(), // Turn buffers into strings - (source) => map(source, (buf) => uint8ArrayToString(buf.subarray())), + (source) => map(source, (buf) => buf.toString()), // Sink function (source) => this.readMessageSink(source, isMessageValid, remotePeerId), ); @@ -645,7 +565,7 @@ class Libp2pService { sessionExists() { return true; - // return this.sessions[remotePeerId.toString()] && this.sessions[remotePeerId.toString()][operationId]; + // return this.sessions[remotePeerId._idB58String] && this.sessions[remotePeerId._idB58String][operationId]; } async isResponseValid() { diff --git a/src/modules/network/network-module-manager.js b/src/modules/network/network-module-manager.js index 3c0c8e0501..5fabc10d28 100644 --- a/src/modules/network/network-module-manager.js +++ b/src/modules/network/network-module-manager.js @@ -5,13 +5,13 @@ class NetworkModuleManager extends BaseModuleManager { return 'network'; } - async serializePeers(peer) { + serializePeers(peer) { if (this.initialized) { return this.getImplementation().module.serializePeers(peer); } } - async deserializePeers(serializedPeers) { + deserializePeers(serializedPeers) { if (this.initialized) { return this.getImplementation().module.deserializePeers(serializedPeers); } diff --git a/src/service/get-service.js b/src/service/get-service.js index c80a9d9f57..cfb14cb024 100644 --- a/src/service/get-service.js +++ b/src/service/get-service.js @@ -62,8 +62,8 @@ class GetService extends OperationService { ); this.logResponsesSummary(completedNumber, failedNumber); } else if (responseData?.nodes?.length) { - const leftoverNodesString = leftoverNodes.map((node) => node.id.toString()); - const thisNodeId = this.networkModuleManager.getPeerId().toString(); + const leftoverNodesString = leftoverNodes.map((node) => node.id._idB58String); + const thisNodeId = this.networkModuleManager.getPeerId()._idB58String; const newDiscoveredNodes = responseData.nodes.filter( (node) => node.id !== thisNodeId && @@ -71,13 +71,12 @@ class GetService extends OperationService { !leftoverNodesString.includes(node.id), ); - const deserializedNodes = await this.networkModuleManager.deserializePeers( - newDiscoveredNodes, - ); + const deserializedNodes = + this.networkModuleManager.deserializePeers(newDiscoveredNodes); for (const node of deserializedNodes) { for (const protocol of this.getNetworkProtocols()) { if (node.protocols.includes(protocol)) { - newFoundNodes[node.id.toString()] = { ...node, protocol }; + newFoundNodes[node.id._idB58String] = { ...node, protocol }; break; } } From 01290c99f887bdafba43e58294941b48fca6c42e Mon Sep 17 00:00:00 2001 From: zeroxbt Date: Thu, 20 Oct 2022 16:00:09 +0200 Subject: [PATCH 5/8] bump version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b750e4a367..f4b30c3cc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "origintrail_node", - "version": "6.0.0-beta.2.2.7", + "version": "6.0.0-beta.2.2.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "origintrail_node", - "version": "6.0.0-beta.2.2.7", + "version": "6.0.0-beta.2.2.8", "license": "ISC", "dependencies": { "@comunica/query-sparql": "^2.4.3", diff --git a/package.json b/package.json index 63b14a3974..2193b68987 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "origintrail_node", - "version": "6.0.0-beta.2.2.7", + "version": "6.0.0-beta.2.2.8", "description": "OTNode v6 Beta 2", "main": "index.js", "type": "module", From b6cf07e34a71798fb52b962b16069597cd934e6e Mon Sep 17 00:00:00 2001 From: zeroxbt <89495162+zeroxbt@users.noreply.github.com> Date: Thu, 20 Oct 2022 16:37:13 +0200 Subject: [PATCH 6/8] add proper migration folder path (#2138) --- .../network/implementation/libp2p-service.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/modules/network/implementation/libp2p-service.js b/src/modules/network/implementation/libp2p-service.js index 29f8514003..457141030d 100644 --- a/src/modules/network/implementation/libp2p-service.js +++ b/src/modules/network/implementation/libp2p-service.js @@ -1,3 +1,4 @@ +import appRootPath from 'app-root-path'; import libp2p from 'libp2p'; import KadDHT from 'libp2p-kad-dht'; import { join } from 'path'; @@ -114,7 +115,18 @@ class Libp2pService { } getKeyPath() { - const directoryPath = join(this.config.appDataPath, LIBP2P_KEY_DIRECTORY); + let directoryPath; + if (process.env.NODE_ENV === 'testnet' || process.env.NODE_ENV === 'mainnet') { + directoryPath = join( + appRootPath.path, + '..', + this.config.appDataPath, + LIBP2P_KEY_DIRECTORY, + ); + } else { + directoryPath = join(appRootPath.path, this.config.appDataPath, LIBP2P_KEY_DIRECTORY); + } + const fullPath = join(directoryPath, LIBP2P_KEY_FILENAME); return { fullPath, directoryPath }; } From 66b1696accd89839b64fe8391d4d0f0b331cf065 Mon Sep 17 00:00:00 2001 From: zeroxbt <89495162+zeroxbt@users.noreply.github.com> Date: Thu, 20 Oct 2022 17:09:28 +0200 Subject: [PATCH 7/8] update migration folder path (#2141) --- src/migration/network-private-key-migration.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/migration/network-private-key-migration.js b/src/migration/network-private-key-migration.js index bcf7a04929..48e91d34e7 100644 --- a/src/migration/network-private-key-migration.js +++ b/src/migration/network-private-key-migration.js @@ -1,4 +1,5 @@ import { join } from 'path'; +import appRootPath from 'app-root-path'; import { mkdir, writeFile } from 'fs/promises'; import BaseMigration from './base-migration.js'; import { LIBP2P_KEY_DIRECTORY, LIBP2P_KEY_FILENAME } from '../constants/constants.js'; @@ -9,7 +10,21 @@ class NetworkPrivateKeyMigration extends BaseMigration { this.config.modules?.network?.implementation?.['libp2p-service']?.config?.privateKey; if (networkPrivateKey) { - const directoryPath = join(this.config.appDataPath, LIBP2P_KEY_DIRECTORY); + let directoryPath; + if (process.env.NODE_ENV === 'testnet' || process.env.NODE_ENV === 'mainnet') { + directoryPath = join( + appRootPath.path, + '..', + this.config.appDataPath, + LIBP2P_KEY_DIRECTORY, + ); + } else { + directoryPath = join( + appRootPath.path, + this.config.appDataPath, + LIBP2P_KEY_DIRECTORY, + ); + } const fullPath = join(directoryPath, LIBP2P_KEY_FILENAME); await mkdir(directoryPath, { recursive: true }); await writeFile(fullPath, networkPrivateKey); From e7c3f2c32c5aaa4f05ea1dd678b127e6b522429e Mon Sep 17 00:00:00 2001 From: zeroxbt Date: Thu, 20 Oct 2022 17:30:04 +0200 Subject: [PATCH 8/8] fix kBucketSize --- src/modules/network/implementation/libp2p-service.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/network/implementation/libp2p-service.js b/src/modules/network/implementation/libp2p-service.js index 457141030d..5121a21dc5 100644 --- a/src/modules/network/implementation/libp2p-service.js +++ b/src/modules/network/implementation/libp2p-service.js @@ -230,7 +230,7 @@ class Libp2pService { return serializedPeers.map((peer) => this.deserializePeer(peer)); } - async sortPeers(key, peers, count = this.config.kBucketSize) { + async sortPeers(key, peers, count = this.config.dht.kBucketSize) { const keyHash = await this.toHash(new TextEncoder().encode(key)); const sorted = pipe( peers, @@ -254,7 +254,10 @@ class Libp2pService { async findNodesLocal(key) { const keyHash = await this.toHash(new TextEncoder().encode(key)); - const nodes = this.node._dht.routingTable.closestPeers(keyHash, this.config.kBucketSize); + const nodes = this.node._dht.routingTable.closestPeers( + keyHash, + this.config.dht.kBucketSize, + ); const result = []; for await (const node of nodes) {