diff --git a/uniform-load-squid/.contract-addrs b/uniform-load-squid/.contract-addrs
new file mode 100644
index 0000000..023e986
--- /dev/null
+++ b/uniform-load-squid/.contract-addrs
@@ -0,0 +1,4 @@
+export MULTICALL_CONTRACT_ADDR=0xcA11bde05977b3631167028862bE2a173976CA11
+export WORKER_REGISTRATION_CONTRACT_ADDR=0x7Bf0B1ee9767eAc70A857cEbb24b83115093477F
+export NETWORK_CONTROLLER_CONTRACT_ADDR=0x938026fefC5F2b6d7c1bCC7098A3Fd1A81C2AECF
+export GATEWAY_REGISTRY_CONTRACT_ADDR=0x01D7D0CC06cDdD744a9E06C9bc5249DA6da3e848
diff --git a/uniform-load-squid/.env b/uniform-load-squid/.env
new file mode 100644
index 0000000..ecd0089
--- /dev/null
+++ b/uniform-load-squid/.env
@@ -0,0 +1 @@
+SUBSQUID_NETWORK_GATEWAY=http://localhost:19174
diff --git a/uniform-load-squid/.gitignore b/uniform-load-squid/.gitignore
new file mode 100644
index 0000000..77f3644
--- /dev/null
+++ b/uniform-load-squid/.gitignore
@@ -0,0 +1,4 @@
+/node_modules
+/lib
+/query-gateway/keys/*.key
+/query-gateway/allocations.db
diff --git a/uniform-load-squid/LICENSE b/uniform-load-squid/LICENSE
new file mode 100644
index 0000000..7ef99c6
--- /dev/null
+++ b/uniform-load-squid/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Subsquid Labs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/uniform-load-squid/README.md b/uniform-load-squid/README.md
new file mode 100644
index 0000000..10e4972
--- /dev/null
+++ b/uniform-load-squid/README.md
@@ -0,0 +1,231 @@
+w
+
+
+
+
+
+
+[![docs.rs](https://docs.rs/leptos/badge.svg)](https://docs.subsquid.io/)
+[![Discord](https://img.shields.io/discord/1031524867910148188?color=%237289DA&label=discord)](https://discord.gg/subsquid)
+
+[Website](https://subsquid.io) | [Docs](https://docs.subsquid.io/) | [Discord](https://discord.gg/subsquid)
+
+[Subsquid Network Docs](https://docs.subsquid.io/subsquid-network/)
+
+# Network Test One: Uniform Load
+
+Some tests of Subsquid Network Phase Two testnet require that all workers regularly serve some queries. You can help the team create this type of uniform load by running this squid.
+
+Note: you'll need to have at least 10 tSQD to complete this quest. Obtain them by doing other quests first.
+
+> [!TIP]
+> If you locked any of your tSQD before, check if you can unlock any at the [gateways page](https://app.subsquid.io/profile/gateways?testnet).
+
+### I. Install dependencies: Node.js, Docker, Git.
+
+
+On Windows
+
+1. Enable [Hyper-V](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v).
+2. Install [Docker for Windows](https://docs.docker.com/desktop/install/windows-install/).
+3. Install NodeJS LTS using the [official installer](https://nodejs.org/en/download).
+4. Install [Git for Windows](https://git-scm.com/download/win).
+
+In all installs it is OK to leave all the options at their default values. You will need a terminal to complete this tutorial - [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) bash is the preferred option.
+
+
+
+On Mac
+
+1. Install [Docker for Mac](https://docs.docker.com/desktop/install/mac-install/).
+2. Install Git using the [installer](https://sourceforge.net/projects/git-osx-installer/) or by [other means](https://git-scm.com/download/mac).
+3. Install NodeJS LTS using the [official installer](https://nodejs.org/en/download).
+
+We recommend configuring NodeJS to install global packages to a folder owned by an unprivileged account. Create the folder by running
+```bash
+mkdir ~/global-node-packages
+```
+then configure NodeJS to use it
+```bash
+npm config set prefix ~/global-node-packages
+```
+Make sure that the folder `~/global-node-packages/bin` is in `PATH`. That allows running globally installed NodeJS executables from any terminal. Here is a one-liner that detects your shell and takes care of setting `PATH`:
+```
+CURSHELL=`ps -hp $$ | awk '{print $5}'`; case `basename $CURSHELL` in 'bash') DEST="$HOME/.bash_profile";; 'zsh') DEST="$HOME/.zshenv";; esac; echo 'export PATH="${HOME}/global-node-packages/bin:$PATH"' >> "$DEST"
+```
+Alternatively you can add the following line to `~/.zshenv` (if you are using zsh) or `~/.bash_profile` (if you are using bash) manually:
+```
+export PATH="${HOME}/global-node-packages/bin:$PATH"
+```
+
+Re-open the terminal to apply the changes.
+
+
+
+On Linux
+
+Install [NodeJS (v16 or newer)](https://nodejs.org/en/download/package-manager), Git and Docker using your distro's package manager.
+
+We recommend configuring NodeJS to install global packages to a folder owned by an unprivileged account. Create the folder by running
+```bash
+mkdir ~/global-node-packages
+```
+then configure NodeJS to use it
+```bash
+npm config set prefix ~/global-node-packages
+```
+Make sure that any executables globally installed by NodeJS are in `PATH`. That allows running them from any terminal. Open the `~/.bashrc` file in a text editor and add the following line at the end:
+```
+export PATH="${HOME}/global-node-packages/bin:$PATH"
+```
+Re-open the terminal to apply the changes.
+
+
+
+### II. Install Subsquid CLI
+
+Open a terminal and run
+```bash
+npm install --global @subsquid/cli@latest
+```
+This adds the [`sqd` command](https://docs.subsquid.io/squid-cli/). Verify that the installation was successful by running
+```bash
+sqd --version
+```
+A healthy response should look similar to
+```
+@subsquid/cli/2.8.0 linux-x64 node-v20.5.1
+```
+
+### III. Run the squid
+
+1. Open a terminal, navigate to any folder for which you have write permissions and run the following commands to retrieve the squid, enter its folder and install dependencies:
+ ```bash
+ sqd init uniform-load-squid -t https://github.com/subsquid-quests/network-test-one-uniform-load-squid
+ ```
+ ```bash
+ cd uniform-load-squid
+ ```
+ ```bash
+ npm ci
+ ```
+
+> [!IMPORTANT]
+> If you're on Windows, the terminal opens in `C:\Windows\system32` by default. Do not download your squid there, navigate someplace else.
+
+2. Press "Get Key" button in the quest card to obtain the `networkTestOneUniformLoad.key` key file. Save it to the `./query-gateway/keys` subfolder of the squid folder. The file will be used to identify your local query gateway when locking tSQD to allocate bandwidth and as it operates.
+
+3. Get the peer ID of your future gateway by running:
+ ```bash
+ sqd get-peer-id
+ ```
+
+4. Register your future gateway using [this page](https://app.subsquid.io/profile/gateways/add?testnet).
+ - Use the peer ID you obtained in the previous step.
+ - Leave the "Publicly available" switch disabled.
+
+5. Lock 10 tSQD by selecting your gateway on [this page](https://app.subsquid.io/profile/gateways?testnet), clicking "Get CU" and submitting the form. Once done, you will begin getting computation units (*CUs*) once every epoch (~15 minutes).
+
+ The "Lock blocks duration" field lets you tune the length of time during which you'll be able to query the network, measured in blocks of Arbitrum Sepolia's L1 (that is, Ethereum Sepolia). The minumum is five hours, but you can opt to lock for longer if you intend to work on the quest over multiple days.
+
+ | Time | Blocks |
+ |:-----------------:|:------:|
+ | 5 hours (minimum) | 1500 |
+ | 24 hours | 7200 |
+ | 72 hours | 21600 |
+
+ Be aware that you'll need to unlock your tokens manually after the end of this period. The tokens you get back will be used in subsequent quests.
+
+ If the locking period expires before you finish your work, simply unlock your tokens, then lock them again.
+
+6. Wait for about 15 minutes. This is the time it takes for Subsquid Network to enter a new epoch, at the beginning of which CUs will be allocated towards your gateway.
+
+7. Start the query gateway with
+ ```bash
+ sqd up
+ ```
+
+ If you'd like to check if the locking was successful, you can inspect the logs of the query gateway container with `docker logs `. After one-two minutes required for the node startup it should contain some lines like this one:
+ ```
+ [2024-01-31T14:55:06Z INFO query_gateway::chain_updates] allocated CU: 48300 spent CU: 0
+ ```
+
+> [!TIP]
+> If you get an error message about `unknown shorthand flag: 'd' in -d`, that means that you're using an old version of `docker` that does not support the `compose` command yet. Update Docker or edit the `commands.json` file as follows:
+> ```diff
+> "up": {
+> "deps": ["check-key"],
+> "description": "Start a PG database",
+> - "cmd": ["docker", "compose", "up", "-d"]
+> + "cmd": ["docker-compose", "up", "-d"]
+> },
+> "down": {
+> "description": "Drop a PG database",
+> - "cmd": ["docker", "compose", "down"]
+> + "cmd": ["docker-compose", "down"]
+> },
+> ```
+
+8. Build the squid code
+ ```bash
+ sqd build
+ ```
+
+9. Start your squid with
+ ```bash
+ sqd run .
+ ```
+ The command should output lines like these:
+ ```
+ [eth-processor] {"level":2,"time":1705681499120,"ns":"sqd:commands","msg":"PROCESS:ETH"}
+ [moonbeam-processor] {"level":2,"time":1705681499148,"ns":"sqd:commands","msg":"PROCESS:MOONBEAM"}
+ [base-processor] {"level":2,"time":1705681499155,"ns":"sqd:commands","msg":"PROCESS:BASE"}
+ [bsc-processor] {"level":2,"time":1705681499163,"ns":"sqd:commands","msg":"PROCESS:BSC"}
+ [eth-processor] 01:24:59 INFO sqd:processor processing blocks from 955722
+ [base-processor] 01:24:59 INFO sqd:processor processing blocks from 1208926
+ [moonbeam-processor] 01:24:59 INFO sqd:processor processing blocks from 166845
+ [bsc-processor] 01:24:59 INFO sqd:processor processing blocks from 16996735
+ [eth-processor] 01:24:59 INFO sqd:processor using archive data source
+ [eth-processor] 01:24:59 INFO sqd:processor prometheus metrics are served at port 34253
+ [base-processor] 01:24:59 INFO sqd:processor using archive data source
+ [base-processor] 01:24:59 INFO sqd:processor prometheus metrics are served at port 40205
+ [moonbeam-processor] 01:24:59 INFO sqd:processor using archive data source
+ [moonbeam-processor] 01:24:59 INFO sqd:processor prometheus metrics are served at port 33691
+ [bsc-processor] 01:24:59 INFO sqd:processor using archive data source
+ [bsc-processor] 01:24:59 INFO sqd:processor prometheus metrics are served at port 41199
+ [moonbeam-processor] 01:25:00 INFO sqd:processor:mapping Got 0 burn txs and 0 USDT transfers
+ [moonbeam-processor] 01:25:00 INFO sqd:processor 171971 / 5325985, rate: 3823 blocks/sec, mapping: 2729 blocks/sec, 1364 items/sec, eta: 23m
+ [base-processor] 01:25:00 INFO sqd:processor:mapping Got 0 burn txs and 0 USDT transfers
+ [base-processor] 01:25:00 INFO sqd:processor 1477379 / 9442733, rate: 175758 blocks/sec, mapping: 8032 blocks/sec, 1339 items/sec, eta: 45s
+ [base-processor] 01:25:02 INFO sqd:processor:mapping Got 1 burn txs and 0 USDT transfers
+ ```
+
+ The squid should download enough data in 3-4 hours.
+
+> [!TIP]
+> Do not worry if the squid fails: any progress it made is saved. Simply restart it if it happens.
+
+When done, stop the squid processor with Ctrl-C, then stop and remove the query gateway container with
+```bash
+sqd down
+```
+
+10. After the locking period ends, go to the [gateways page](https://app.subsquid.io/profile/gateways/) and unlock your tSQD - you will need them for other quests.
+
+# Quest Info
+
+| Category | Skill Level | Time required (minutes) | Max Participants | Reward | Status |
+| ---------------- | ------------------------------------ | ----------------------- | ---------------- | ----------------------------------- | ------ |
+| Squid Deployment | $\textcolor{green}{\textsf{Simple}}$ | ~250 | - | $\textcolor{red}{\textsf{75tSQD}}$ | open |
+
+# Acceptance critera
+
+Sync this squid using the key from the quest card. The syncing progress is tracked by the amount of data the squid has retrieved from [Subsquid Network](https://docs.subsquid.io/subsquid-network).
+
+# About this squid
+
+This [squid](https://docs.subsquid.io/) retrieves native token burns on ETH, BSC, Base and Moonbeam. It does not keep any data, as it's sole purpose is to stress test the network.
+
+Data ingester ("processor") code is defined for all networks in `src/testConfig.ts`. The executable `src/main.ts` chooses the settings to use based on its sole command line argument. The scripts file `commands.json` contains commands for running each processor (`process:eth`, `process:bsc`, `process:base` and `process:moonbeam`). You can also use `sqd run` to run all the services at once; the list of services is kept in the [squid manifest](https://docs.subsquid.io/cloud/reference/manifest/) at `squid.yaml`.
+
+The squid uses Phase Two [Subsquid Network](https://docs.subsquid.io/subsquid-network) as its primary data source.
diff --git a/uniform-load-squid/commands.json b/uniform-load-squid/commands.json
new file mode 100644
index 0000000..4399dac
--- /dev/null
+++ b/uniform-load-squid/commands.json
@@ -0,0 +1,57 @@
+{
+ "$schema": "https://cdn.subsquid.io/schemas/commands.json",
+ "commands": {
+ "clean": {
+ "description": "delete all build artifacts",
+ "cmd": ["npx", "--yes", "rimraf", "lib"]
+ },
+ "build": {
+ "description": "Build the squid project",
+ "deps": ["clean"],
+ "cmd": ["tsc"]
+ },
+ "check-key": {
+ "cmd": ["node", "scripts/checkKey.js", "query-gateway/keys/networkTestOneUniformLoad.key"],
+ "hidden": true
+ },
+ "get-peer-id": {
+ "deps": ["check-key"],
+ "description": "Get a peer ID given the public key",
+ "cmd": ["node", "scripts/getPeerIdFromGatewayKey.js", "query-gateway/keys/networkTestOneUniformLoad.key"]
+ },
+ "up": {
+ "deps": ["check-key"],
+ "description": "Start a Subsquid network gateway",
+ "cmd": ["docker", "compose", "up", "-d"]
+ },
+ "down": {
+ "description": "Stop a Subsquid network gateway",
+ "cmd": ["docker", "compose", "down"]
+ },
+ "process:eth": {
+ "description": "Load .env and start the ETH squid processor",
+ "cmd": ["node", "--require=dotenv/config", "lib/main.js", "eth"]
+ },
+ "process:bsc": {
+ "description": "Load .env and start the BSC squid processor",
+ "cmd": ["node", "--require=dotenv/config", "lib/main.js", "bsc"]
+ },
+ "process:base": {
+ "description": "Load .env and start the Base squid processor",
+ "cmd": ["node", "--require=dotenv/config", "lib/main.js", "base"]
+ },
+ "process:moonbeam": {
+ "description": "Load .env and start the Base squid processor",
+ "cmd": ["node", "--require=dotenv/config", "lib/main.js", "moonbeam"]
+ },
+ "check-updates": {
+ "cmd": ["npx", "--yes", "npm-check-updates", "--filter=/subsquid/", "--upgrade"],
+ "hidden": true
+ },
+ "bump": {
+ "description": "Bump @subsquid packages to the latest versions",
+ "deps": ["check-updates"],
+ "cmd": ["npm", "i", "-f"]
+ }
+ }
+}
diff --git a/uniform-load-squid/docker-compose.yml b/uniform-load-squid/docker-compose.yml
new file mode 100644
index 0000000..a072466
--- /dev/null
+++ b/uniform-load-squid/docker-compose.yml
@@ -0,0 +1,21 @@
+version: "3.8"
+
+services:
+ query_gateway:
+ image: subsquid/query-gateway:0.2.8
+ environment:
+ HTTP_LISTEN_ADDR: 0.0.0.0:8000
+ BOOT_NODES: >
+ 12D3KooWSRvKpvNbsrGbLXGFZV7GYdcrYNh4W2nipwHHMYikzV58 /dns4/testnet.subsquid.io/tcp/22345,
+ 12D3KooWQC9tPzj2ShLn39RFHS5SGbvbP2pEd7bJ61kSW2LwxGSB /dns4/testnet.subsquid.io/tcp/22346,
+ 12D3KooWQER7HEpwsvqSzqzaiV36d3Bn6DZrnwEunnzS76pgZkMU /dns4/testnet.subsquid.io/tcp/32345
+ RPC_URL: https://sepolia-rollup.arbitrum.io/rpc
+ CONFIG_PATH: /app/data/config/gateway-config.yml
+ KEY_PATH: /app/data/keys/networkTestOneUniformLoad.key
+ ALLOCATIONS_DB_PATH: /app/data/allocations.db
+ env_file:
+ - .contract-addrs
+ volumes:
+ - ./query-gateway:/app/data
+ ports:
+ - "19174:8000"
diff --git a/uniform-load-squid/package-lock.json b/uniform-load-squid/package-lock.json
new file mode 100644
index 0000000..523bfae
--- /dev/null
+++ b/uniform-load-squid/package-lock.json
@@ -0,0 +1,2283 @@
+{
+ "name": "squid-evm-template",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "squid-evm-template",
+ "dependencies": {
+ "@belopash/mock-store": "^0.0.0",
+ "@inquirer/input": "^1.2.14",
+ "@inquirer/password": "^1.1.14",
+ "@subsquid/evm-processor": "^1.13.0",
+ "@types/node": "^20.11.5",
+ "dotenv": "^16.3.1",
+ "ethereumjs-wallet": "^1.0.2",
+ "libp2p": "^1.2.3",
+ "peer-id": "^0.16.0",
+ "typescript": "~5.3.3"
+ }
+ },
+ "node_modules/@belopash/mock-store": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/@belopash/mock-store/-/mock-store-0.0.0.tgz",
+ "integrity": "sha512-RiNKln0rgix+HJknn7Fkr5861WBCS8dvcLAqANGV1cSga9msacqu/3Zj14ofSGzzGt39NMHxnKxPdSjWcShV0Q==",
+ "dependencies": {
+ "@subsquid/util-internal-processor-tools": "~4.0.0"
+ }
+ },
+ "node_modules/@chainsafe/is-ip": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.2.tgz",
+ "integrity": "sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA=="
+ },
+ "node_modules/@chainsafe/netmask": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz",
+ "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==",
+ "dependencies": {
+ "@chainsafe/is-ip": "^2.0.1"
+ }
+ },
+ "node_modules/@inquirer/core": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz",
+ "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==",
+ "dependencies": {
+ "@inquirer/type": "^1.1.6",
+ "@types/mute-stream": "^0.0.4",
+ "@types/node": "^20.10.7",
+ "@types/wrap-ansi": "^3.0.0",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "cli-spinners": "^2.9.2",
+ "cli-width": "^4.1.0",
+ "figures": "^3.2.0",
+ "mute-stream": "^1.0.0",
+ "run-async": "^3.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/@inquirer/input": {
+ "version": "1.2.16",
+ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz",
+ "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==",
+ "dependencies": {
+ "@inquirer/core": "^6.0.0",
+ "@inquirer/type": "^1.1.6",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/@inquirer/password": {
+ "version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz",
+ "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==",
+ "dependencies": {
+ "@inquirer/core": "^6.0.0",
+ "@inquirer/type": "^1.1.6",
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/@inquirer/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@libp2p/crypto": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.0.2.tgz",
+ "integrity": "sha512-zdFnnP2dA3X/xqRyJus+5rgCrp7JHFh+C8hA+DckXqp+ayiRMyLnKKPXmSzTKJSsIABMW2pcUFU+yCeDSgiSQQ==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "@noble/curves": "^1.3.0",
+ "@noble/hashes": "^1.3.3",
+ "asn1js": "^3.0.5",
+ "multiformats": "^13.0.1",
+ "protons-runtime": "^5.4.0",
+ "uint8arraylist": "^2.4.8",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/crypto/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/crypto/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/interface": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.3.tgz",
+ "integrity": "sha512-id22Ve5acg6CM0jjL8s9cyEaBYWn7z1R+1gy75RpHi0qgW15ifozwi0oFSTGLVA5XzRnNzioDLj+ZP6QwvhIVQ==",
+ "dependencies": {
+ "@multiformats/multiaddr": "^12.1.14",
+ "it-pushable": "^3.2.3",
+ "it-stream-types": "^2.0.1",
+ "multiformats": "^13.0.1",
+ "progress-events": "^1.0.0",
+ "uint8arraylist": "^2.4.8"
+ }
+ },
+ "node_modules/@libp2p/interface-internal": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.8.tgz",
+ "integrity": "sha512-NkUBnqzAAWDcg9n4uUtEpbtHg0gZjLhdBTwqJWkWuTujaCEz0xk5FfXBXgWqGEMIZAN73VX8/hLQCeigk3gUlg==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/peer-collections": "^5.1.6",
+ "@multiformats/multiaddr": "^12.1.14",
+ "uint8arraylist": "^2.4.8"
+ }
+ },
+ "node_modules/@libp2p/interface/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/logger": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.6.tgz",
+ "integrity": "sha512-ofTE3kDivBJnUSoX68nOeg1EuAnIE8oUjUnQnuKrxH+nh0JtjTcvwwIzjmm4nApwb4xj2dgPSDvU38Mjmu3TvA==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "@multiformats/multiaddr": "^12.1.14",
+ "debug": "^4.3.4",
+ "interface-datastore": "^8.2.10",
+ "multiformats": "^13.0.1"
+ }
+ },
+ "node_modules/@libp2p/logger/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/multistream-select": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-5.1.3.tgz",
+ "integrity": "sha512-vKD4FESYBHxLIL0gQ+WtUktsT3SrUBj2GFOESbexj98cTXquKcQUM6XTMrLRS8wWf77czZKpuKwwMxE+VsU2kw==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "it-length-prefixed": "^9.0.4",
+ "it-length-prefixed-stream": "^1.1.6",
+ "it-stream-types": "^2.0.1",
+ "p-defer": "^4.0.0",
+ "race-signal": "^1.0.2",
+ "uint8-varint": "^2.0.4",
+ "uint8arraylist": "^2.4.8",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/multistream-select/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/peer-collections": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.1.6.tgz",
+ "integrity": "sha512-n2Oav1GehdEToeALvSytuYw2wiwzMvbOUxyAFUfF6oqmZgNe9P8cOkyr0w2P0p0hXjdcIeIfDYeTvY4MeHZnjw==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/peer-id": "^4.0.6"
+ }
+ },
+ "node_modules/@libp2p/peer-id": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.6.tgz",
+ "integrity": "sha512-hAj2bdN+s/cCkiaLthuL412DqLeYZ83yRmbjZfHHJ8d3sV/M7NAxu2v8Zx+3KurFF8ICMoD7bb34IXHo7FH3kw==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "multiformats": "^13.0.1",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/peer-id-factory": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.0.6.tgz",
+ "integrity": "sha512-dj5gdPvh3p4n4ltvZF508LA2hvC5COKP6BVFzcUBUy1yp81srSkX6QuV69W61pYfe5VxhVvyjhVkHIZ2l7wB7Q==",
+ "dependencies": {
+ "@libp2p/crypto": "^4.0.2",
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/peer-id": "^4.0.6",
+ "protons-runtime": "^5.4.0",
+ "uint8arraylist": "^2.4.8",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/peer-id-factory/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/peer-id/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/peer-id/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/peer-record": {
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.9.tgz",
+ "integrity": "sha512-uI5kE8K6/CWamxV9NK1p7mdYoWIf1AP+eWWZd+1opa/R7zT/QYmtAc/wWE7uFhfRsB736u9GkiPwU66LzA0reQ==",
+ "dependencies": {
+ "@libp2p/crypto": "^4.0.2",
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/peer-id": "^4.0.6",
+ "@libp2p/utils": "^5.2.5",
+ "@multiformats/multiaddr": "^12.1.14",
+ "protons-runtime": "^5.4.0",
+ "uint8-varint": "^2.0.4",
+ "uint8arraylist": "^2.4.8",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/peer-record/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/peer-record/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/peer-store": {
+ "version": "10.0.10",
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-10.0.10.tgz",
+ "integrity": "sha512-b5SUUtioxJMWaBPU2/UfS76q1DXkDmTkpTBogiKc5BTM6g5AqIA4wQXeiLB5EopxEUnSYSyeFxwdoeVDBkz19g==",
+ "dependencies": {
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/peer-collections": "^5.1.6",
+ "@libp2p/peer-id": "^4.0.6",
+ "@libp2p/peer-record": "^7.0.9",
+ "@multiformats/multiaddr": "^12.1.14",
+ "interface-datastore": "^8.2.10",
+ "it-all": "^3.0.4",
+ "mortice": "^3.0.4",
+ "multiformats": "^13.0.1",
+ "protons-runtime": "^5.4.0",
+ "uint8arraylist": "^2.4.8",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/@libp2p/peer-store/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@libp2p/peer-store/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@libp2p/utils": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.2.5.tgz",
+ "integrity": "sha512-oMUrBvEFGD/74I3W3AhpV3pLx8CeEhxCpoJ9a0BTetoJ+TbU5DxxcWJGvhoq3RfQiUvZtg0IwJWNaiJ6lB2sdA==",
+ "dependencies": {
+ "@chainsafe/is-ip": "^2.0.2",
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/logger": "^4.0.6",
+ "@multiformats/multiaddr": "^12.1.14",
+ "@multiformats/multiaddr-matcher": "^1.1.2",
+ "delay": "^6.0.0",
+ "get-iterator": "^2.0.1",
+ "is-loopback-addr": "^2.0.2",
+ "it-pushable": "^3.2.3",
+ "it-stream-types": "^2.0.1",
+ "netmask": "^2.0.2",
+ "p-defer": "^4.0.0",
+ "race-event": "^1.1.0",
+ "race-signal": "^1.0.2",
+ "uint8arraylist": "^2.4.8"
+ }
+ },
+ "node_modules/@multiformats/multiaddr": {
+ "version": "12.1.14",
+ "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.14.tgz",
+ "integrity": "sha512-1C0Mo73chzu7pTzTquuKs5vUtw70jhqg1i6pUNznGb0WV6RFa6vyB+D697Os5+cLx+DiItrAY6VzMtlGQsMzYg==",
+ "dependencies": {
+ "@chainsafe/is-ip": "^2.0.1",
+ "@chainsafe/netmask": "^2.0.0",
+ "@libp2p/interface": "^1.0.0",
+ "dns-over-http-resolver": "^3.0.2",
+ "multiformats": "^13.0.0",
+ "uint8-varint": "^2.0.1",
+ "uint8arrays": "^5.0.0"
+ }
+ },
+ "node_modules/@multiformats/multiaddr-matcher": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.1.2.tgz",
+ "integrity": "sha512-O7hO+TYsweMjNCqTYKYn8iki2GXA46mxmgqnsOb2Wpr6ca4dRGnPldWTai2WwTeZpQyRJ/7GE+N9zPTfP0xE+Q==",
+ "dependencies": {
+ "@chainsafe/is-ip": "^2.0.1",
+ "@multiformats/multiaddr": "^12.0.0",
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@multiformats/multiaddr-matcher/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@multiformats/multiaddr/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz",
+ "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==",
+ "dependencies": {
+ "@noble/hashes": "1.3.3"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/ed25519": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz",
+ "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz",
+ "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/secp256k1": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
+ "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
+ },
+ "node_modules/@subsquid/evm-processor": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/evm-processor/-/evm-processor-1.16.0.tgz",
+ "integrity": "sha512-8teORozRXSeJ7X3k992QpdWJQceCF7NLY1T61vbO/SPTMMmqyJMtv5xN81KybYeeNHvcxk8D0kPKQ5bAz/+GkA==",
+ "dependencies": {
+ "@subsquid/http-client": "^1.3.2",
+ "@subsquid/logger": "^1.3.2",
+ "@subsquid/rpc-client": "^4.6.0",
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-archive-client": "^0.1.0",
+ "@subsquid/util-internal-hex": "^1.2.2",
+ "@subsquid/util-internal-ingest-tools": "^1.1.0",
+ "@subsquid/util-internal-processor-tools": "^4.0.1",
+ "@subsquid/util-internal-range": "^0.1.0",
+ "@subsquid/util-internal-validation": "^0.3.0",
+ "@subsquid/util-timeout": "^2.3.2"
+ }
+ },
+ "node_modules/@subsquid/http-client": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz",
+ "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==",
+ "dependencies": {
+ "@subsquid/logger": "^1.3.2",
+ "@subsquid/util-internal": "^3.0.0",
+ "node-fetch": "^3.3.2"
+ }
+ },
+ "node_modules/@subsquid/logger": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.2.tgz",
+ "integrity": "sha512-5YPdeRu0WD9iBak+r3S8blBeg2uyliPUlmCjj/ZE6dpXmXsSN9T+ZYrNeDr9eAbRV7OXVI49lSfCuAGenFcYjQ==",
+ "dependencies": {
+ "@subsquid/util-internal-hex": "^1.2.2",
+ "@subsquid/util-internal-json": "^1.2.2",
+ "supports-color": "^8.1.1"
+ }
+ },
+ "node_modules/@subsquid/rpc-client": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz",
+ "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==",
+ "dependencies": {
+ "@subsquid/http-client": "^1.3.2",
+ "@subsquid/logger": "^1.3.2",
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-binary-heap": "^1.0.0",
+ "@subsquid/util-internal-counters": "^1.3.2",
+ "websocket": "^1.0.34"
+ }
+ },
+ "node_modules/@subsquid/util-internal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz",
+ "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ=="
+ },
+ "node_modules/@subsquid/util-internal-archive-client": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz",
+ "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==",
+ "dependencies": {
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-range": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@subsquid/http-client": "^1.3.2",
+ "@subsquid/logger": "^1.3.2"
+ },
+ "peerDependenciesMeta": {
+ "@subsquid/logger": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@subsquid/util-internal-binary-heap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz",
+ "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA=="
+ },
+ "node_modules/@subsquid/util-internal-counters": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz",
+ "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng=="
+ },
+ "node_modules/@subsquid/util-internal-hex": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz",
+ "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw=="
+ },
+ "node_modules/@subsquid/util-internal-http-server": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz",
+ "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==",
+ "dependencies": {
+ "stoppable": "^1.1.0"
+ }
+ },
+ "node_modules/@subsquid/util-internal-ingest-tools": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz",
+ "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==",
+ "dependencies": {
+ "@subsquid/logger": "^1.3.2",
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-range": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@subsquid/util-internal-archive-client": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@subsquid/util-internal-archive-client": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@subsquid/util-internal-json": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz",
+ "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==",
+ "dependencies": {
+ "@subsquid/util-internal-hex": "^1.2.2"
+ }
+ },
+ "node_modules/@subsquid/util-internal-processor-tools": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz",
+ "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==",
+ "dependencies": {
+ "@subsquid/logger": "^1.3.2",
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-counters": "^1.3.2",
+ "@subsquid/util-internal-prometheus-server": "^1.2.2",
+ "@subsquid/util-internal-range": "^0.1.0",
+ "prom-client": "^14.2.0"
+ }
+ },
+ "node_modules/@subsquid/util-internal-prometheus-server": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz",
+ "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==",
+ "dependencies": {
+ "@subsquid/util-internal-http-server": "^1.2.2"
+ },
+ "peerDependencies": {
+ "prom-client": "^14.2.0"
+ }
+ },
+ "node_modules/@subsquid/util-internal-range": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz",
+ "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==",
+ "dependencies": {
+ "@subsquid/util-internal": "^3.0.0",
+ "@subsquid/util-internal-binary-heap": "^1.0.0"
+ }
+ },
+ "node_modules/@subsquid/util-internal-validation": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-internal-validation/-/util-internal-validation-0.3.0.tgz",
+ "integrity": "sha512-P0edbjHYViluEIa87MDqL+JrNj+sy0XcIPWXipAtyrpPGdxItWtnmnvwpzZsxkIoPt9FuOmcZg9OQbCj5OCARA==",
+ "peerDependencies": {
+ "@subsquid/logger": "^1.3.2"
+ },
+ "peerDependenciesMeta": {
+ "@subsquid/logger": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@subsquid/util-timeout": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz",
+ "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ=="
+ },
+ "node_modules/@types/bn.js": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz",
+ "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "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/mute-stream": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz",
+ "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.20",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
+ "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/secp256k1": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
+ "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/wrap-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz",
+ "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g=="
+ },
+ "node_modules/aes-js": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
+ "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-signal": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz",
+ "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==",
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/asn1js": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz",
+ "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==",
+ "dependencies": {
+ "pvtsutils": "^1.3.2",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/bintrees": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz",
+ "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="
+ },
+ "node_modules/blakejs": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+ "dependencies": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "node_modules/bs58check": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+ "dependencies": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+ },
+ "node_modules/bufferutil": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
+ "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/class-is": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/datastore-core": {
+ "version": "9.2.8",
+ "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.8.tgz",
+ "integrity": "sha512-+S3rI6FSQphrGQZraYcCLeaVzCpDkNBYBk9a8QU8Kt+7xPAphNVA6a37kc6K9CQBppVOOmRaPBKU19fhHJLszg==",
+ "dependencies": {
+ "@libp2p/logger": "^4.0.6",
+ "err-code": "^3.0.1",
+ "interface-datastore": "^8.0.0",
+ "interface-store": "^5.0.0",
+ "it-drain": "^3.0.5",
+ "it-filter": "^3.0.4",
+ "it-map": "^3.0.5",
+ "it-merge": "^3.0.3",
+ "it-pipe": "^3.0.1",
+ "it-pushable": "^3.2.3",
+ "it-sort": "^3.0.4",
+ "it-take": "^3.0.4"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/delay": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz",
+ "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dns-over-http-resolver": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-3.0.2.tgz",
+ "integrity": "sha512-5batkHOjCkuAfrFa+IPmt3jyeZqLtSMfAo1HQp3hfwtzgUwHooecTFplnYC093u5oRNL4CQHCXh3OfER7+vWrA==",
+ "dependencies": {
+ "debug": "^4.3.4",
+ "receptacle": "^1.3.2"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.4.5",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
+ "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/err-code": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.63",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.63.tgz",
+ "integrity": "sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esniff/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
+ "node_modules/ethereum-cryptography": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "dependencies": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "node_modules/ethereumjs-util": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
+ "dependencies": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.2.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/ethereumjs-wallet": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz",
+ "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==",
+ "dependencies": {
+ "aes-js": "^3.1.2",
+ "bs58check": "^2.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereumjs-util": "^7.1.2",
+ "randombytes": "^2.1.0",
+ "scrypt-js": "^3.0.1",
+ "utf8": "^3.0.0",
+ "uuid": "^8.3.2"
+ }
+ },
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "node_modules/ext/node_modules/type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ },
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/get-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.1.tgz",
+ "integrity": "sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg=="
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/interface-datastore": {
+ "version": "8.2.11",
+ "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.11.tgz",
+ "integrity": "sha512-9E0iXehfp/j0UbZ2mvlYB4K9pP7uQBCppfuy8WHs1EHF6wLQrM9+zwyX+8Qt6HnH4GKZRyXX/CNXm6oD4+QYgA==",
+ "dependencies": {
+ "interface-store": "^5.0.0",
+ "uint8arrays": "^5.0.2"
+ }
+ },
+ "node_modules/interface-datastore/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/interface-datastore/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/interface-store": {
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.8.tgz",
+ "integrity": "sha512-7na81Uxkl0vqk0CBPO5PvyTkdaJBaezwUJGsMOz7riPOq0rJt+7W31iaopaMICWea/iykUsvNlPx/Tc+MxC3/w=="
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-loopback-addr": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz",
+ "integrity": "sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg=="
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "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/it-all": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.4.tgz",
+ "integrity": "sha512-UMiy0i9DqCHBdWvMbzdYvVGa5/w4t1cc4nchpbnjdLhklglv8mQeEYnii0gvKESJuL1zV32Cqdb33R6/GPfxpQ=="
+ },
+ "node_modules/it-byte-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/it-byte-stream/-/it-byte-stream-1.0.8.tgz",
+ "integrity": "sha512-H32LbN6kdX8HXqH68z5uivfkVYJEi5tIPRwIQNR5Qsx3uoDRhYdBRHzf3NOVAf6vqulFUSQLuU+Y0rs/QeWn3A==",
+ "dependencies": {
+ "it-stream-types": "^2.0.1",
+ "p-defer": "^4.0.0",
+ "race-signal": "^1.0.1",
+ "uint8arraylist": "^2.4.1"
+ }
+ },
+ "node_modules/it-drain": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-3.0.5.tgz",
+ "integrity": "sha512-qYFe4SWdvs9oJGUY5bSjvmiLUMLzFEODNOQUdYdCIkuIgQF+AUB2INhM4yQ09buJ2rhHKDFxvTD/+yUq6qg0XA=="
+ },
+ "node_modules/it-filter": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-3.0.4.tgz",
+ "integrity": "sha512-e0sz+st4sudK/zH6GZ/gRTRP8A/ADuJFCYDmRgMbZvR79y5+v4ZXav850bBZk5wL9zXaYZFxS1v/6Qi+Vjwh5g==",
+ "dependencies": {
+ "it-peekable": "^3.0.0"
+ }
+ },
+ "node_modules/it-length-prefixed": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.4.tgz",
+ "integrity": "sha512-lz28fykbG0jq7s5XtvlzGxO5BeSOw6ikymkRllxjL21V5VKLcvB4pHr9wPvEnsAJ2et1xpOk3BRTMq9XrhgKsg==",
+ "dependencies": {
+ "err-code": "^3.0.1",
+ "it-reader": "^6.0.1",
+ "it-stream-types": "^2.0.1",
+ "uint8-varint": "^2.0.1",
+ "uint8arraylist": "^2.0.0",
+ "uint8arrays": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/it-length-prefixed-stream": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/it-length-prefixed-stream/-/it-length-prefixed-stream-1.1.6.tgz",
+ "integrity": "sha512-MEby4r8n3XIYXjaWT3DweCuhBPQmFVT8RdI1BNjYQ5gelbFD3NLdjYpTI3TVmSEs/aJfgpfVFZzy6iP7OCxIgw==",
+ "dependencies": {
+ "it-byte-stream": "^1.0.0",
+ "it-stream-types": "^2.0.1",
+ "uint8-varint": "^2.0.1",
+ "uint8arraylist": "^2.4.1"
+ }
+ },
+ "node_modules/it-length-prefixed/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/it-length-prefixed/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/it-map": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.5.tgz",
+ "integrity": "sha512-hB0TDXo/h4KSJJDSRLgAPmDroiXP6Fx1ck4Bzl3US9hHfZweTKsuiP0y4gXuTMcJlS6vj0bb+f70rhkD47ZA3w==",
+ "dependencies": {
+ "it-peekable": "^3.0.0"
+ }
+ },
+ "node_modules/it-merge": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-3.0.3.tgz",
+ "integrity": "sha512-FYVU15KC5pb/GQX1Ims+lee8d4pdqGVCpWr0lkNj8o4xuNo7jY71k6GuEiWdP+T7W1bJqewSxX5yoTy5yZpRVA==",
+ "dependencies": {
+ "it-pushable": "^3.2.0"
+ }
+ },
+ "node_modules/it-parallel": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.6.tgz",
+ "integrity": "sha512-i7UM7I9LTkDJw3YIqXHFAPZX6CWYzGc+X3irdNrVExI4vPazrJdI7t5OqrSVN8CONXLAunCiqaSV/zZRbQR56A==",
+ "dependencies": {
+ "p-defer": "^4.0.0"
+ }
+ },
+ "node_modules/it-peekable": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.3.tgz",
+ "integrity": "sha512-Wx21JX/rMzTEl9flx3DGHuPV1KQFGOl8uoKfQtmZHgPQtGb89eQ6RyVd82h3HuP9Ghpt0WgBDlmmdWeHXqyx7w=="
+ },
+ "node_modules/it-pipe": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz",
+ "integrity": "sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==",
+ "dependencies": {
+ "it-merge": "^3.0.0",
+ "it-pushable": "^3.1.2",
+ "it-stream-types": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/it-pushable": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.3.tgz",
+ "integrity": "sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==",
+ "dependencies": {
+ "p-defer": "^4.0.0"
+ }
+ },
+ "node_modules/it-reader": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.4.tgz",
+ "integrity": "sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==",
+ "dependencies": {
+ "it-stream-types": "^2.0.1",
+ "uint8arraylist": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/it-sort": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-3.0.4.tgz",
+ "integrity": "sha512-tvnC93JZZWjX4UxALy0asow0dzXabkoaRbrPJKClTKhNCqw4gzHr+H5axf1gohcthedRRkqd/ae+wl7WqoxFhw==",
+ "dependencies": {
+ "it-all": "^3.0.0"
+ }
+ },
+ "node_modules/it-stream-types": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz",
+ "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==",
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/it-take": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/it-take/-/it-take-3.0.4.tgz",
+ "integrity": "sha512-RG8HDjAZlvkzz5Nav4xq6gK5zNT+Ff1UTIf+CrSJW8nIl6N1FpBH5e7clUshiCn+MmmMoSdIEpw4UaTolszxhA=="
+ },
+ "node_modules/keccak": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
+ "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/libp2p": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-1.2.3.tgz",
+ "integrity": "sha512-eBPPliHno1pmMWfi+YR40YKc+XBvhiC3G583xy0dTCG3X+a+r8DpSEyd72dwPvyohY4k58MDcdi6zwjTRHnTIw==",
+ "dependencies": {
+ "@libp2p/crypto": "^4.0.2",
+ "@libp2p/interface": "^1.1.3",
+ "@libp2p/interface-internal": "^1.0.8",
+ "@libp2p/logger": "^4.0.6",
+ "@libp2p/multistream-select": "^5.1.3",
+ "@libp2p/peer-collections": "^5.1.6",
+ "@libp2p/peer-id": "^4.0.6",
+ "@libp2p/peer-id-factory": "^4.0.6",
+ "@libp2p/peer-store": "^10.0.10",
+ "@libp2p/utils": "^5.2.5",
+ "@multiformats/multiaddr": "^12.1.14",
+ "any-signal": "^4.1.1",
+ "datastore-core": "^9.2.7",
+ "interface-datastore": "^8.2.10",
+ "it-merge": "^3.0.3",
+ "it-parallel": "^3.0.6",
+ "merge-options": "^3.0.4",
+ "multiformats": "^13.0.1",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/libp2p/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/libp2p/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+ },
+ "node_modules/mortice": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.4.tgz",
+ "integrity": "sha512-MUHRCAztSl4v/dAmK8vbYi5u1n9NZtQu4H3FsqS7qgMFQIAFw9lTpHiErd9kJpapqmvEdD1L3dUmiikifAvLsQ==",
+ "dependencies": {
+ "observable-webworkers": "^2.0.1",
+ "p-queue": "^8.0.1",
+ "p-timeout": "^6.0.0"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/multiformats": {
+ "version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
+ },
+ "node_modules/mute-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz",
+ "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/netmask": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
+ "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
+ },
+ "node_modules/node-addon-api": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
+ },
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
+ "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "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/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/p-queue": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.0.1.tgz",
+ "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==",
+ "dependencies": {
+ "eventemitter3": "^5.0.1",
+ "p-timeout": "^6.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-timeout": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz",
+ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/peer-id": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.16.0.tgz",
+ "integrity": "sha512-EmL7FurFUduU9m1PS9cfJ5TAuCvxKQ7DKpfx3Yj6IKWyBRtosriFuOag/l3ni/dtPgPLwiA4R9IvpL7hsDLJuQ==",
+ "dependencies": {
+ "class-is": "^1.1.0",
+ "libp2p-crypto": "^0.21.0",
+ "multiformats": "^9.4.5",
+ "protobufjs": "^6.10.2",
+ "uint8arrays": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=15.0.0"
+ }
+ },
+ "node_modules/peer-id/node_modules/libp2p-crypto": {
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.21.2.tgz",
+ "integrity": "sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==",
+ "dependencies": {
+ "@noble/ed25519": "^1.5.1",
+ "@noble/secp256k1": "^1.3.0",
+ "err-code": "^3.0.1",
+ "iso-random-stream": "^2.0.0",
+ "multiformats": "^9.4.5",
+ "node-forge": "^1.2.1",
+ "protobufjs": "^6.11.2",
+ "uint8arrays": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/peer-id/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/progress-events": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz",
+ "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==",
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/prom-client": {
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz",
+ "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==",
+ "dependencies": {
+ "tdigest": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/protobufjs": {
+ "version": "6.11.4",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz",
+ "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==",
+ "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/protons-runtime": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.4.0.tgz",
+ "integrity": "sha512-XfA++W/WlQOSyjUyuF5lgYBfXZUEMP01Oh1C2dSwZAlF2e/ZrMRPfWonXj6BGM+o8Xciv7w0tsRMKYwYEuQvaw==",
+ "dependencies": {
+ "uint8-varint": "^2.0.2",
+ "uint8arraylist": "^2.4.3",
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/protons-runtime/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/protons-runtime/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/pvtsutils": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz",
+ "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==",
+ "dependencies": {
+ "tslib": "^2.6.1"
+ }
+ },
+ "node_modules/pvutils": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz",
+ "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/race-event": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/race-event/-/race-event-1.2.0.tgz",
+ "integrity": "sha512-7EvAjTu9uuKa03Jky8yfSy6/SnnMTh6nouNmdeWv9b0dT8eDZC5ylx30cOR9YO9otQorVjjkIuSHQ5Ml/bKwMw=="
+ },
+ "node_modules/race-signal": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.0.2.tgz",
+ "integrity": "sha512-o3xNv0iTcIDQCXFlF6fPAMEBRjFxssgGoRqLbg06m+AdzEXXLUmoNOoUHTVz2NoBI8hHwKFKoC6IqyNtWr2bww=="
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/receptacle": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz",
+ "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/rlp": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
+ "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
+ "dependencies": {
+ "bn.js": "^5.2.0"
+ },
+ "bin": {
+ "rlp": "bin/rlp"
+ }
+ },
+ "node_modules/run-async": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
+ "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
+ },
+ "node_modules/secp256k1": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "elliptic": "^6.5.4",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "engines": {
+ "node": ">=4",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/tdigest": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz",
+ "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==",
+ "dependencies": {
+ "bintrees": "1.0.2"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/uint8-varint": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz",
+ "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==",
+ "dependencies": {
+ "uint8arraylist": "^2.0.0",
+ "uint8arrays": "^5.0.0"
+ }
+ },
+ "node_modules/uint8-varint/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/uint8-varint/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/uint8arraylist": {
+ "version": "2.4.8",
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz",
+ "integrity": "sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==",
+ "dependencies": {
+ "uint8arrays": "^5.0.1"
+ }
+ },
+ "node_modules/uint8arraylist/node_modules/multiformats": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz",
+ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ=="
+ },
+ "node_modules/uint8arraylist/node_modules/uint8arrays": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.2.tgz",
+ "integrity": "sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==",
+ "dependencies": {
+ "multiformats": "^13.0.0"
+ }
+ },
+ "node_modules/uint8arrays": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz",
+ "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==",
+ "dependencies": {
+ "multiformats": "^9.4.2"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
+ "node_modules/utf-8-validate": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
+ "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
+ }
+ },
+ "node_modules/utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/websocket": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
+ "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
+ "dependencies": {
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/websocket/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/websocket/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
+ "engines": {
+ "node": ">=0.10.32"
+ }
+ }
+ }
+}
diff --git a/uniform-load-squid/package.json b/uniform-load-squid/package.json
new file mode 100644
index 0000000..4bb5f8c
--- /dev/null
+++ b/uniform-load-squid/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "squid-evm-template",
+ "private": true,
+ "scripts": {
+ "build": "rm -rf lib && tsc"
+ },
+ "dependencies": {
+ "@belopash/mock-store": "^0.0.0",
+ "@inquirer/input": "^1.2.14",
+ "@inquirer/password": "^1.1.14",
+ "@subsquid/evm-processor": "^1.13.0",
+ "@types/node": "^20.11.5",
+ "dotenv": "^16.3.1",
+ "ethereumjs-wallet": "^1.0.2",
+ "libp2p": "^1.2.3",
+ "peer-id": "^0.16.0",
+ "typescript": "~5.3.3"
+ }
+}
diff --git a/uniform-load-squid/query-gateway/config/gateway-config.yml b/uniform-load-squid/query-gateway/config/gateway-config.yml
new file mode 100644
index 0000000..7b99726
--- /dev/null
+++ b/uniform-load-squid/query-gateway/config/gateway-config.yml
@@ -0,0 +1,12 @@
+scheduler_id: "12D3KooWQER7HEpwsvqSzqzaiV36d3Bn6DZrnwEunnzS76pgZkMU"
+send_metrics: true
+worker_inactive_threshold_sec: 60
+worker_greylist_time_sec: 600
+default_query_timeout_sec: 60
+summary_print_interval_sec: 30
+workers_update_interval_sec: 60
+available_datasets:
+ ethereum-mainnet: "czM6Ly9ldGhlcmV1bS1tYWlubmV0LTE"
+ binance-mainnet: "czM6Ly9ic2MtbWFpbm5ldC0x"
+ base-mainnet: "czM6Ly9iYXNlLTE"
+ moonbeam-mainnet: "czM6Ly9tb29uYmVhbS1ldm0tMQ"
diff --git a/uniform-load-squid/query-gateway/keys/.keep b/uniform-load-squid/query-gateway/keys/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/uniform-load-squid/renovate.json b/uniform-load-squid/renovate.json
new file mode 100644
index 0000000..2b5d370
--- /dev/null
+++ b/uniform-load-squid/renovate.json
@@ -0,0 +1,29 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "config:base"
+ ],
+ "packageRules": [
+ {
+ "groupName": "@subsquid",
+ "matchPackagePatterns": [
+ "^@subsquid/"
+ ],
+ "matchUpdateTypes": [
+ "minor",
+ "patch",
+ "pin",
+ "digest"
+ ]
+ },
+ {
+ "matchPackagePatterns": ["*"],
+ "excludePackagePatterns": ["^@subsquid/"],
+ "enabled": false
+ }
+ ],
+ "automerge": true,
+ "automergeType": "pr",
+ "automergeStrategy": "squash",
+ "ignoreTests": true
+}
\ No newline at end of file
diff --git a/uniform-load-squid/schema.graphql b/uniform-load-squid/schema.graphql
new file mode 100644
index 0000000..6bfb81d
--- /dev/null
+++ b/uniform-load-squid/schema.graphql
@@ -0,0 +1,10 @@
+type Transfer @entity {
+ id: ID!
+ network: String! @index
+ block: Int! @index
+ timestamp: DateTime! @index
+ from: String! @index
+ to: String! @index
+ value: BigInt!
+ txHash: String! @index
+}
diff --git a/uniform-load-squid/scripts/checkKey.js b/uniform-load-squid/scripts/checkKey.js
new file mode 100644
index 0000000..724d05e
--- /dev/null
+++ b/uniform-load-squid/scripts/checkKey.js
@@ -0,0 +1,6 @@
+import fs from 'fs'
+const keyPath = process.argv[2]
+if (!keyPath || !fs.existsSync(keyPath) || !fs.lstatSync(keyPath).isFile()) {
+ console.error(`ERROR: Key file not found at ${keyPath}`)
+ process.exit(1)
+}
diff --git a/uniform-load-squid/scripts/exportWalletKeyAsJson.js b/uniform-load-squid/scripts/exportWalletKeyAsJson.js
new file mode 100644
index 0000000..3ca4471
--- /dev/null
+++ b/uniform-load-squid/scripts/exportWalletKeyAsJson.js
@@ -0,0 +1,13 @@
+import fs from 'fs'
+import wallet from 'ethereumjs-wallet'
+
+const pk = new Buffer.from(process.argv[2], 'hex') // supply a private key
+const account = wallet.fromPrivateKey(pk)
+const password = process.argv[3] // will be required to unlock/sign after importing
+
+account.toV3(password)
+ .then(value => {
+ const address = account.getAddress().toString('hex')
+ const file = `UTC--${new Date().toISOString().replace(/[:]/g, '-')}--${address}.json`
+ fs.writeFileSync(file, JSON.stringify(value))
+ })
diff --git a/uniform-load-squid/scripts/getPeerIdFromGatewayKey.js b/uniform-load-squid/scripts/getPeerIdFromGatewayKey.js
new file mode 100644
index 0000000..ebe03ff
--- /dev/null
+++ b/uniform-load-squid/scripts/getPeerIdFromGatewayKey.js
@@ -0,0 +1,13 @@
+import { createFromPrivKey } from 'peer-id'
+import { keys } from 'libp2p-crypto'
+import { readFileSync } from 'fs'
+
+const file = readFileSync(process.argv[2])
+
+async function main() {
+ const key = await keys.supportedKeys.ed25519.unmarshalEd25519PrivateKey((file))
+ const peerId = await createFromPrivKey(key.bytes)
+ console.log('Your peer ID is', peerId.toB58String())
+}
+
+main()
diff --git a/uniform-load-squid/scripts/package.json b/uniform-load-squid/scripts/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/uniform-load-squid/scripts/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/uniform-load-squid/squid.yaml b/uniform-load-squid/squid.yaml
new file mode 100644
index 0000000..df535b8
--- /dev/null
+++ b/uniform-load-squid/squid.yaml
@@ -0,0 +1,23 @@
+manifestVersion: subsquid.io/v0.1
+name: uniform-load-squid
+version: 1
+description: Quest squid for loading the Phase 2 permissionless Subsquid testnet
+build:
+deploy:
+ processor:
+ - name: eth-processor
+ cmd:
+ - sqd
+ - process:eth
+ - name: bsc-processor
+ cmd:
+ - sqd
+ - process:bsc
+ - name: base-processor
+ cmd:
+ - sqd
+ - process:base
+ - name: moonbeam-processor
+ cmd:
+ - sqd
+ - process:moonbeam
diff --git a/uniform-load-squid/src/allFields.ts b/uniform-load-squid/src/allFields.ts
new file mode 100644
index 0000000..ce559c0
--- /dev/null
+++ b/uniform-load-squid/src/allFields.ts
@@ -0,0 +1,79 @@
+// evm-processor fields selections for all existing fields
+
+export const allTransactionFields = {
+ gas: true,
+ gasPrice: true,
+ maxFeePerGas: true,
+ maxPriorityFeePerGas: true,
+ input: true,
+ nonce: true,
+ value: true,
+ v: true,
+ r: true,
+ s: true,
+ yParity: true,
+ chainId: true,
+ gasUsed: true,
+ cumulativeGasUsed: true,
+ effectiveGasPrice: true,
+ contractAddress: true,
+ type: true,
+ status: true,
+ sighash: true
+}
+
+export const allLogFields = {
+ transactionHash: true
+}
+
+export const allTraceFields = {
+ createFrom: true,
+ createValue: true,
+ createGas: true,
+ createInit: true,
+ createResultGasUsed: true,
+ createResultCode: true,
+ createResultAddress: true,
+ callFrom: true,
+ callTo: true,
+ callValue: true,
+ callGas: true,
+ callSighash: true,
+ callInput: true,
+ callResultGasUsed: true,
+ callResultOutput: true,
+ suicideAddress: true,
+ suicideRefundAddress: true,
+ suicideBalance: true,
+ rewardAuthor: true,
+ rewardValue: true,
+ rewardType: true
+}
+
+export const allStateDiffFields = {}
+
+export const allBlockHeaderFields = {
+ nonce: true,
+ sha3Uncles: true,
+ logsBloom: true,
+ transactionsRoot: true,
+ stateRoot: true,
+ receiptsRoot: true,
+ mixHash: true,
+ miner: true,
+ difficulty: true,
+ totalDifficulty: true,
+ extraData: true,
+ size: true,
+ gasLimit: true,
+ gasUsed: true,
+ baseFeePerGas: true
+}
+
+export const allFields = {
+ transaction: allTransactionFields,
+ log: allLogFields,
+ trace: allTraceFields,
+ stateDiff: allStateDiffFields,
+ block: allBlockHeaderFields
+}
\ No newline at end of file
diff --git a/uniform-load-squid/src/main.ts b/uniform-load-squid/src/main.ts
new file mode 100644
index 0000000..16a27df
--- /dev/null
+++ b/uniform-load-squid/src/main.ts
@@ -0,0 +1,4 @@
+import {MockDatabase} from '@belopash/mock-store'
+import {processor, config} from './processor'
+
+processor.run(new MockDatabase(), config.batchHandler)
diff --git a/uniform-load-squid/src/processor.ts b/uniform-load-squid/src/processor.ts
new file mode 100644
index 0000000..b14ad5b
--- /dev/null
+++ b/uniform-load-squid/src/processor.ts
@@ -0,0 +1,26 @@
+import assert from 'assert'
+import {EvmBatchProcessor} from '@subsquid/evm-processor'
+import {networksConfig} from './testConfig'
+
+assert(Object.keys(networksConfig).includes(process.argv[2]), `no config for network "${process.argv[2]}"`)
+export const config = networksConfig[process.argv[2] as keyof typeof networksConfig]
+
+const processor = new EvmBatchProcessor().setGateway(config.datasetUrl)
+
+if (config.range) processor.setBlockRange(config.range)
+if (config.includeAllBlocks) processor.includeAllBlocks()
+for (let txRequest of config.transactions) {
+ processor.addTransaction(txRequest)
+}
+for (let logRequest of config.logs) {
+ processor.addLog(logRequest)
+}
+for (let traceRequest of config.traces) {
+ processor.addTrace(traceRequest)
+}
+for (let stateDiffRequest of config.stateDiffs) {
+ processor.addStateDiff(stateDiffRequest)
+}
+processor.setFields(config.fields)
+
+export { processor }
diff --git a/uniform-load-squid/src/testConfig.ts b/uniform-load-squid/src/testConfig.ts
new file mode 100644
index 0000000..cd858d9
--- /dev/null
+++ b/uniform-load-squid/src/testConfig.ts
@@ -0,0 +1,52 @@
+import {assertNotNull} from '@subsquid/util-internal'
+
+import {allTransactionFields, allBlockHeaderFields} from './allFields'
+import {getRandomInt} from './utils'
+
+const gateway = assertNotNull(process.env.SUBSQUID_NETWORK_GATEWAY)
+
+const commonConfig = {
+ batchHandler: async (ctx: any) => {
+ let burns = 0
+ for (let block of ctx.blocks) {
+ burns += block.transactions.length
+ }
+ ctx.log.info(`Got ${burns} burn txs`)
+ },
+ includeAllBlocks: true,
+ transactions: [
+ {
+ to: ['0x0000000000000000000000000000000000000000']
+ }
+ ],
+ logs: [],
+ traces: [],
+ stateDiffs: [],
+ fields: {
+ transaction: allTransactionFields,
+ block: allBlockHeaderFields
+ }
+}
+
+export const networksConfig = {
+ eth: {
+ datasetUrl: `${gateway}/network/ethereum-mainnet`,
+ range: { from: getRandomInt(0, 14_000_000) },
+ ...commonConfig
+ },
+ bsc: {
+ datasetUrl: `${gateway}/network/binance-mainnet`,
+ range: { from: getRandomInt(0, 30_000_000) },
+ ...commonConfig
+ },
+ base: {
+ datasetUrl: `${gateway}/network/base-mainnet`,
+ range: { from: getRandomInt(0, 4_000_000) },
+ ...commonConfig
+ },
+ moonbeam: {
+ datasetUrl: `${gateway}/network/moonbeam-mainnet`,
+ range: { from: 0 },
+ ...commonConfig
+ }
+}
diff --git a/uniform-load-squid/src/utils.ts b/uniform-load-squid/src/utils.ts
new file mode 100644
index 0000000..3bcb366
--- /dev/null
+++ b/uniform-load-squid/src/utils.ts
@@ -0,0 +1,3 @@
+export function getRandomInt(min: number, max: number) {
+ return Math.floor(Math.random() * (max - min + 1)) + min
+}
diff --git a/uniform-load-squid/tsconfig.json b/uniform-load-squid/tsconfig.json
new file mode 100644
index 0000000..50becfd
--- /dev/null
+++ b/uniform-load-squid/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "es2020",
+ "outDir": "lib",
+ "rootDir": "src",
+ "strict": true,
+ "declaration": false,
+ "sourceMap": true,
+ "esModuleInterop": true,
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
+ "skipLibCheck": true,
+ "resolveJsonModule": true
+ },
+ "include": ["src"],
+ "exclude": [
+ "node_modules"
+ ]
+}